Mybatis in Springboot
目前 springboot 里面用的很广的一个 ORM 框架就是 mybatis,没有采用 mybatis-plugin,因为有些复杂的 SQL 还是自己写会更合适,更倾向于使用一个模板例如用 golang 的 template 生成基础语言,例如 domain,controller,service,mapper 等等,不过这个是题外话了,这篇文章是记录在使用 mybatis 过程中,关于一些常用功能的 tips,这样可以在 springboot3.x 里面更好的使用 mybatis。
1、引入 mybatis。
2、关于配置,目前网络上各种教程,还是要以官方文档,避免走弯路,https://mybatis.org/spring-boot-starter/mybatis-spring-boot-autoconfigure/,以下是一个常见配置
map-underscore-to-camel-case:在数据库中通常用"_"来作为单词分隔符,而代码中通常采用驼峰规则,这个配置用来将"_"字段映射到驼峰规则,减少 resultmap 的配置。
type-handlers-package:用来处理一些代码中特殊的字段,例如枚举,对象等。
logging.level.mapperpackage: 设置日志规则,debug 将会输出 SQL 语句。
3、关于 TypeHandler,下面是一个将 object 存到 PG 的 jsonb 字段的 handler,你可以使用你自己的 json 转换插件转换对象。
MappedTypes: 指定哪些对象需要使用这个 mapperhandler。
4、在 springboot 中基本采用注解方式来使用 mybatis,下面是一些常用的功能 tips:
返回数据库自增 ID,这里以 PG 为例,使用 @Select 代替 @Insert,添加一个 @Options 的注解,设置 id 匹配规则,示例:
在注解中使用 foreach,if 等 xml 中配置关键字,需要用<script>包住 SQL 语句,以及对于一些特殊符号进行转义,例如<,>等,示例:
版权声明: 本文为 InfoQ 作者【Kevin_913】的原创文章。
原文链接:【http://xie.infoq.cn/article/de6e4e869d96cd2b2861b93fb】。
本文遵守【CC-BY 4.0】协议,转载请保留原文出处及本版权声明。
评论