Spring Boot中使用MyBatis注解配置详解

之前在Spring Boot中整合MyBatis时,采用了注解的配置方式,相信很多人还是比较喜欢这种优雅的方式的,也收到不少读者朋友的反馈和问题,主要集中于针对各种场景下注解如何使用,下面就对几种常见的情况举例说明用法。

传参方式

下面通过几种不同传参方式来实现前文中实现的插入操作。

使用@Param

在之前的整合示例中我们已经使用了这种最简单的传参方式,如下:

这种方式很好理解, @Param 中定义的 name 对应了SQL中的 #{name} , age 对应了SQL中的 #{age} 。

使用Map

如下代码,通过Map 对象来作为传递参数的容器:

对于Insert语句中需要的参数,我们只需要在map中填入同名的内容即可,具体如下面代码所示:

使用对象

除了Map对象,我们也可直接使用普通的Java对象来作为查询条件的传参,比如我们可以直接使用User对象:

这样语句中的 #{name} 、 #{age} 就分别对应了User对象中的 name 和 age 属性。

增删改查

MyBatis针对不同的数据库操作分别提供了不同的注解来进行配置,在之前的示例中演示了 @Insert ,下面针对User表做一组最基本的增删改查作为示例:

在完成了一套增删改查后,不妨我们试试下面的单元测试来验证上面操作的正确性:

返回结果的绑定

对于增、删、改操作相对变化较小。而对于“查”操作,我们往往需要进行多表关联,汇总计算等操作,那么对于查询的结果往往就不再是简单的实体对象了,往往需要返回一个与数据库实体不同的包装类,那么对于这类情况,就可以通过 @Results 和 @Result 注解来进行绑定,具体如下:

在上面代码中,@Result中的property属性对应User对象中的成员名,column对应SELECT出的字段名。在该配置中故意没有查出id属性,只对User对应中的name和age对象做了映射配置,这样可以通过下面的单元测试来验证查出的id为null,而其他属性不为null:

在此我向大家推荐一个架构学习交流群。交流学习群号:575745314  里面会分享一些资深架构师录制的视频录像:有Spring,MyBatis,Netty源码分析,高并发、高性能、分布式、微服务架构的原理,JVM性能优化、分布式架构等这些成为架构师必备的知识体系。还能领取免费的学习资源,目前受益良多

后记

本文主要介绍几种最为常用的方式,大家可以借鉴参考。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 之前在Spring Boot中整合MyBatis时,采用了注解的配置方式,相信很多人还是比较喜欢这种优雅的方式的,...
    程序猿DD阅读 3,799评论 5 38
  • 1、谈谈你对Struts的理解。 答: 1.struts是一个按MVC模式设计的Web层框架,其实它就是一个大大的...
    慕容小伟阅读 2,858评论 0 13
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,923评论 18 139
  • 已经不知道自己从什么时候开始,跟爸妈说话,特别没有耐性,近期随着工作压力的增大,父亲不断强迫的逼婚状态的,我的情绪...
    贝贝321阅读 536评论 0 50
  • 当老仁在公交车上摸到大衣兜子上那一道长长的口子时心顿时就凉了半截。 被割包了! 车窗外一瞅,彤云密布,再定睛...
    乐忘书阅读 267评论 0 0