MyBatis

在MyBatis中,ResultType和ResultMap是两种不同的结果映射方式。

  1. ResultType: ResultType是一种简单的结果映射方式,用于将查询结果直接映射到Java对象或基本数据类型。你可以通过在SQL查询语句中使用"SELECT * FROM table_name"这样的语法,并通过指定ResultType来将查询结果映射为指定的Java对象或基本数据类型。

例如,如果你有一个User对象:

javaCopy Code

public class User { 
    private Long id; 
    private String username; 
    // 其他属性和方法... 
}

你可以使用以下方式进行查询:

xmlCopy Code

<select id="getUser" resultType="com.example.User">
    SELECT * FROM user WHERE id = #{id} 
</select>

这样,查询结果就会自动映射到User对象上,无需再配置ResultMap。

需要注意的是,ResultType只适用于简单的映射情况,当查询结果中的列与Java对象属性名完全匹配时,才能成功映射。如果查询结果列名与Java对象属性名不匹配,将无法正常映射。

  1. ResultMap: ResultMap是一种更为灵活和强大的结果映射方式,通过手动配置来定义查询结果与Java对象之间的映射关系。你可以根据具体的需求,配置每个字段与类中属性的映射规则,甚至可以进行嵌套对象的映射。

在XML配置文件中,你需要定义一个ResultMap,并在查询语句中引用它。例如:

xmlCopy Code

<resultMap id="userMap" type="com.example.User"> 
    <id property="id" column="user_id"/> 
    <result property="username" column="user_name"/>
    <!-- 其他属性映射... -->
</resultMap> 
<select id="getUser" resultMap="userMap"> 
    SELECT * FROM user WHERE id = #{id}
</select>

在上面的示例中,通过ResultMap配置了userMap来映射User对象,指定了id和username属性与查询结果中的列名之间的映射关系。

相对于ResultType,ResultMap提供了更大的灵活性和可控性,可以处理复杂的映射情况,并支持一些高级特性,如嵌套查询和关联映射等。

总结来说,ResultType适用于简单的映射场景,而ResultMap则更适用于复杂的映射需求,可以通过手动配置来实现精确的映射规则。

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值