MyBatis——SQL映射文件 使用resultMap实现结果匹配

本文详细介绍了如何在MyBatis中使用resultMap进行结果匹配。通过设置id和type属性,实现与Java实体类的映射。讲解了PARTIAL、NONE和FULL三种自动映射级别,并提供了一个示例,展示在实体类User中添加String类型的属性roleName并进行映射。此外,还探讨了association子标签的应用,用于处理一对一的关联关系,如在User类中嵌套Role类。
摘要由CSDN通过智能技术生成

二、使用resultMap实现简单的结果匹配
首先创建另一张数据库表RoleInfo(角色表),字段就是ID、RoleName,同时创建实体类Role。

resultMap常用的两个基本属性:

1、id:resultMap的唯一标识;

2、type:表示此resultMap映射的结果类型,通常是Java实体类。

在resultMap标签中,可使用和子标签指定一个属性名跟字段名的映射,property是实体类的属性名,column是数据库中的字段名。子节点一般对应该记录行的数据库主键字段,可提升MyBatis性能,二者作用差不多。

先说一下resultMap的自动映射级别:

PARTIAL,默认值,自动匹配基本类型

NONE,不进行自动匹配

FULL,自动匹配所有类型,包括复杂的JavaBean、引用类型。

一般设置为自动匹配所有,这样只需要在resultMap中配置名称不对应的属性即可,其他不做手动映射的属性依然可以映射上。此选项在mybatis-config.xml(核心配置文件)中的settings标签中设置,代码如下

<!--设置为FULL,自动匹配所有,则在resultMap中不进行匹配的字段也可以映射-->
        <setting name="autoMappingBehavior" value="FULL"/>

接下来举个例子,在实体类User中增加String类型的属性roleName,在UserMapper.java接口中定义如下方法

public User getNameAndRole(@Param("uName")String userName);  //查询用户信息同时获取角色名称

在UserMapper.xml中添加如下内容

<!--resultMap属性指向一个resultMap标签的id-->
    <select id="getNameAndRole" resultMap="nameAndRole">
        SELECT u.*,r.RoleName FROM UserInfo u,RoleInfo r WHERE UserName=#{
   uName} AND u.UserRole=r.ID
    </select>
    <!--type类型指定返回的实体类-->
    <resultMap id="nameAndRole" type="Us
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值