Mybatis进阶-输出结果封装resultType和resultMap

本文探讨了Mybatis中的结果封装,重点讲解了resultType和resultMap的使用。resultType适用于基本类型和简单对象封装,但在属性名与列名不一致时存在问题。而resultMap能解决这个问题,通过映射配置建立列名与属性名的对应关系,支持复杂类型的POJO映射,提高开发效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Mybatis 的输出结果封装

1.resultType 配置结果类型

1.1基本类型示例
List<User> findAll();
User findById(Integer userId);
List<User> findByName(String username);
int findTotal();
List<User> findUserByVo(QueryVo vo);
    <select id="findAll" resultType="cn.lj.pojo.User">
        select * from user
    </select>

    <select id="findById" parameterType="int" resultType="cn.lj.pojo.User">
        select * from user where id=#{uid}
    </select>

    <select id="findByName" parameterType="string" resultType="cn.lj.pojo.User">
        select * from user where username like #{name}
    </select>
    <select id="findTotal" resultType="int">
        select count(id) from user
    </select>

    <select id="findUserByVo" parameterType="cn.lj.pojo.QueryVo" resultType="cn.lj.pojo.User">
        select * from user where username like #{user.username}
    </select>
1.2特殊情况示例-当实体类属性和数据库表的列名已经不一致了
public class User implements Serializable {
   
    private Integer userId;
    private String userName;
    private Date userBirthday;
    private String userSex;
    private String userAddress;

    public Integer getUserId() {
   
        return userId;
    }

    public void setUserId(Integer userId) {
   
        this.userId = userId;
    }

    public String getUserName() {
   
        return userName;
    }

    public void setUserName(String userName) {
   
        this.userName = userName;
    }

    public Date getUserBirthday() {
   
        return userBirthday;
    }

    public void setUserBirthday(Date userBirthday) {
   
        this.userBirthday = userBirthday;
    }

    public String getUserSex() 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

木子津

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值