SpringBoot快速整合Mybatis(去XML化+注解进阶)

人工智能,零基础入门!http://www.captainbed.net/inner

供的注解可以逐步取代XML,例如使用@Select注解直接编写SQL完成数据查询,使用@SelectProvider高级注解还可以编写动态SQL,以应对复杂的业务需求。

一. 基础注解

MyBatis 主要提供了以下CRUD注解:

@Select

@Insert

@Update

@Delete

增删改查占据了绝大部分的业务操作,掌握这些基础注解的使用还是很有必要的,例如下面这段代码无需XML即可完成数据查询:

@Mapper
public interface UserMapper {
   @Select("select * from t_user")
   List<User> list();
}

使用过Hibernate的同学可能会好奇,这里为什么没有配置映射关系也能完成属性注入?在传统项目中使用过Mybatis的童鞋可能很快就反应过来,是因为在配置文件中开启了全局驼峰映射,SpringBoot中同样能够做到,并且更为简单快捷。

虽然开启了全局驼峰映射,但你可能还会质疑,如果不符合下划线转驼峰规则的字段,拿查询回来的实体对象属性将获取为null,比如上述User对象属性mobileNum和对应的数据库字段phoneNum,则查询结果为:

[
 {
   "userId": "1",
   "username": "admin",
   "password": "admin",
   "mobileNum": null
 },
 {
   "userId": "2",
   "username": "roots",
   "password": "roots",
   "mobileNum": null
 }
]

为了解决对象属性和字段驼峰不一致的问题,我们可以使用映射注解@Results来指定映射关系。

二.  映射注解

Mybatis主要提供这些映射注解:

@Results  用于填写结果集的多个字段的映射关系.

@Result  用于填写结果集的单个字段的映射关系.

@ResultMap 根据ID关联XML里面<resultMap>.

例如上面的list方法,我们可以在查询SQL的基础上,指定返回的结果集的映射关系,其中property表示实体对象的属性名,column表示对应的数据库字段名。

@Results({
           @Result(property = "userId", column = "USER_ID"),
           @Result(property = "username", column = "USERNAME"),
           @Result(property = "password", column = "PASSWORD"),
           @Result(property = "mobileNum", column = "PHONE_NUM")
   })
   @Select("select * from t_user")
   List<User> list();

查询结果如下,:

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值