MyBatis中常用注解详解 (Results、Result、ResultMap、ResultType、MapKey)

MyBatis是一款优秀的ORM框架,它提供了一系列的注解,使得开发者无需编写冗长的xml文件就可以完成数据的映射,这对于提高开发效率非常有帮助。本篇博客将对常用的注解进行详细的讲解,并提供实际应用的示例以便理解。

目录

一、 @Results 注解

二、 @Result 注解

三、 @ResultMap 注解

四、 @ResultType 注解

五、 @MapKey 注解

总结 :


一、 @Results 注解

@Results 注解可用于定义多个列和Java对象属性之间的映射关系。比如,我们在查询用户表时,需要将 idusernamepassword 的值映射到 User 对象的 userIduserNamepassword 属性上,可以在 @Select 注解内使用 @Results 注解完成:

@Select("select * from user")
@Results({
    @Result(column = "id", property = "userId"),
    @Result(column = "username", property = "userName"),
    @Result(column = "password", property = "password")
})
public List<User> findAll();

其中, @Result 注解需要指定 columnproperty 属性,分别代表数据库列名和Java对象属性名。

二、 @Result 注解

@Result 注解用于定义单个列和Java对象属性之间的映射关系。一般情况下,它会被用在 @Results 注解内,也可以单独使用。例如,我们可以使用 @Result 注解完成如下查询操作:

@Result(column = "id", property = "userId")
public User findById(Long id);

@Result 注解也需要指定 columnproperty 属性。

三、 @ResultMap 注解

@ResultMap 注解将一个已经定义好的映射关系映射到一个方法上,也就是引用了一个 @Results 注解。例如,我们可以通过 @ResultMap 注解完成如下查询操作:

@Select("select * from user where id = #{id}")
@ResultMap("userResultMap")
public User findById(Long id);

其中, userResultMap 代表一个已经定义好的 @Results 注解。

四、 @ResultType 注解

@ResultType 注解用于设置查询返回的结果类型。当一个查询返回基本类型或者包装类时,一般需要使用 @ResultType 注解指定明确的结果类型,例如:

@Select("select count(*) from user")
@ResultType(Integer.class)
public int count();

这里,我们使用了 Integer 类作为查询结果类型。

五、 @MapKey 注解

@MapKey 注解用于设置返回值为Map类型时,指定哪个字段作为key。例如,我们可以使用 @MapKey 注解完成如下操作:

@Select("select * from user")
@MapKey("id")
public Map<Long, User> findAllMap();

其中, id 代表Map中的key值。

总结 :

MyBatis提供了很多注解,本篇博客主要讲解了常用的五种注解的用法和实例。除了这些注解之外,MyBatis还有很多其他的注解,例如 @Param@Delete@Insert@Update 等等。学会使用这些注解可以让我们在开发中事半功倍。

  • 2
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值