登录
首页 >  数据库 >  MySQL

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

来源:SegmentFault

时间:2023-01-29 11:49:56 361浏览 收藏

小伙伴们有没有觉得学习数据库很有意思?有意思就对了!今天就给大家带来《Spring Boot中使用MyBatis注解配置详解》,以下内容将会涉及到MySQL、Java、nginx、spring、mybatis,若是在学习中对其中部分知识点有疑问,或许看了本文就能帮到你!

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

传参方式

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

使用@Param

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

clipboard.png

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

使用Map

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

clipboard.png

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

clipboard.png

使用对象

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

clipboard.png

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

增删改查

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

clipboard.png

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

clipboard.png

返回结果的绑定

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

clipboard.png

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

clipboard.png

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

图片描述

后记

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

今天关于《Spring Boot中使用MyBatis注解配置详解》的内容介绍就到此结束,如果有什么疑问或者建议,可以在golang学习网公众号下多多回复交流;文中若有不正之处,也希望回复留言以告知!

声明:本文转载于:SegmentFault 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>
评论列表