SpringBoot 之集成 MyBatis
# SpringBoot 之集成 MyBatis, 分页插件 PageHelper, 通用 Mapper
- Spring Boot 1.5.1.RELEASE (opens new window)
- mybatis-spring-boot-starter (opens new window)
- mapper-spring-boot-starter (opens new window)
- pagehelper-spring-boot-starter (opens new window)
# 新书《MyBatis 从入门到精通》
预售地址:京东 (opens new window),当当 (opens new window),亚马逊 (opens new window)
CSDN 博客:http://blog.csdn.net/isea533/article/details/73555400
GitHub 项目:https://github.com/mybatis-book/book
# 项目依赖
<!--mybatis-->
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>1.3.1</version>
</dependency>
<!--mapper-->
<dependency>
<groupId>tk.mybatis</groupId>
<artifactId>mapper-spring-boot-starter</artifactId>
<version>1.2.4</version>
</dependency>
<!--pagehelper-->
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper-spring-boot-starter</artifactId>
<version>1.2.3</version>
</dependency>
# Spring DevTools 配置
感谢emf1002 (opens new window)提供的解决方案。
在使用 DevTools 时,通用 Mapper 经常会出现 class x.x.A cannot be cast to x.x.A。
同一个类如果使用了不同的类加载器,就会产生这样的错误,所以解决方案就是让通用 Mapper 和实体类使用相同的类加载器即可。
DevTools 默认会对 IDE 中引入的所有项目使用 restart 类加载器,对于引入的 jar 包使用 base 类加载器,因此只要保证通用 Mapper 的 jar 包使用 restart 类加载器即可。
在 src/main/resources
中创建 META-INF 目录,在此目录下添加 spring-devtools.properties 配置,内容如下:
restart.include.mapper=/mapper-[\\w-\\.]+jar
restart.include.pagehelper=/pagehelper-[\\w-\\.]+jar
使用这个配置后,就会使用 restart 类加载加载 include 进去的 jar 包。
# 集成 MyBatis Generator
通过 Maven 插件集成的,所以运行插件使用下面的命令:
mvn mybatis-generator:generate
Mybatis Geneator 详解:
http://blog.csdn.net/isea533/article/details/42102297
# application.properties 配置
#mybatis
mybatis.type-aliases-package=tk.mybatis.springboot.model
mybatis.mapper-locations=classpath:mapper/*.xml
#mapper
#mappers 多个接口时逗号隔开
mapper.mappers=tk.mybatis.springboot.util.MyMapper
mapper.not-empty=false
mapper.identity=MYSQL
#pagehelper
pagehelper.helperDialect=mysql
pagehelper.reasonable=true
pagehelper.supportMethodsArguments=true
pagehelper.params=count=countSql
# application.yml 配置
完整配置可以参考 src/main/resources/application-old.yml (opens new window) ,和 MyBatis 相关的部分配置如下:
mybatis:
type-aliases-package: tk.mybatis.springboot.model
mapper-locations: classpath:mapper/*.xml
mapper:
mappers:
- tk.mybatis.springboot.util.MyMapper
not-empty: false
identity: MYSQL
pagehelper:
helperDialect: mysql
reasonable: true
supportMethodsArguments: true
params: count=countSql
注意 mapper 配置,因为参数名固定,所以接收参数使用的对象,按照 Spring Boot 配置规则,大写字母都变了带横线的小写字母。针对如 IDENTITY(对应 i-d-e-n-t-i-t-y)提供了全小写的 identity 配置,如果 IDE 能自动提示,看自动提示即可。
# SSM 集成的基础项目
https://github.com/abel533/Mybatis-Spring
# MyBatis 工具 http://www.mybatis.tk
- 推荐使用 Mybatis 通用 Mapper3 https://github.com/abel533/Mapper
- 推荐使用 Mybatis 分页插件 PageHelper https://github.com/pagehelper/Mybatis-PageHelper
# 作者信息
- 作者博客:http://blog.csdn.net/isea533
- 作者邮箱:abel533@gmail.com
- 如需加群,请通过 http://mybatis.tk 首页按钮加群。