Spring Boot集成Mybatis的实现还是相当的简单的,我这里使用的数据库是MySQL,所以先引入MySQL的连接工具
<!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.48</version>
</dependency>
<!-- alibaba的druid数据库连接池 -->
<!-- https://mvnrepository.com/artifact/com.alibaba/druid-spring-boot-starter -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
<version>1.1.21</version>
</dependency>
引入mybatis集成工具包
<!-- https://mvnrepository.com/artifact/org.mybatis.spring.boot/mybatis-spring-boot-starter -->
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.0.0</version>
</dependency>
这里注意下版本的问题,有时候会有些冲突的情况,可以调整下相关版本,特别是1.3.X和2.X的版本差距还是有的。
我们需要使用分页功能,所以引入分页工具包
<!-- mybatis分页插件 -->
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper-spring-boot-starter</artifactId>
<version>1.2.12</version>
</dependency>
分页使用代码如下:
Integer page = params.getPage();
Integer pageSize = params.getPageSize();
//分页处理
PageHelper.startPage(page, pageSize, true);
List<User> classTimeList = userMapper.userList(params);
PageInfo<User> pageInfo = new PageInfo<>(classTimeList);
基本上这样配置完成之后,只要完成相关的yml文件配置,集成就完成了。那么我们一般集成完毕的时候,我们都希望能进行单元测试测试mybatis是否配置有问题。单独的Spring Boot的单元测试的配置,请参考:
那么针对mybatis的单元测试有一点不一样的地方,首先POM文件引入:
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter-test</artifactId>
<version>2.0.0</version>
<scope>test</scope>
</dependency>
然后在test的resources中新建application.yml文件
spring:
datasource:
type: com.alibaba.druid.pool.DruidDataSource
driver-class-name: com.mysql.jdbc.Driver
url: jdbc:mysql://127.0.0.1:8306/wecode_saas_qc?allowMultiQueries=true&useUnicode=true&characterEncoding=UTF-8
username: write_user
password: write@codeus
#mybatis的配置
mybatis:
type-handlers-package: com.clark.type.hanlder
configuration:
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
map-underscore-to-camel-case: true
新建Spring Boot的启动类
@SpringBootApplication
public class Run {
public static void main(String[] args) {
SpringApplication.run(Run.class, args);
}
}
新建测试类
@RunWith(SpringRunner.class)
@SpringBootTest(classes = Run.class)
@EnableAutoConfiguration
public class RunTests {
@Resource
private UserMapper userMapper;
@Test
public void test() throws Exception {
User user = null;
// 新增测试
System.out.println("------------ 新增测试 ------------");
user = new User();
user.setNameBig("conanli");
user.setTelephone(String.valueOf(Math.random()));
System.out.println("insert: " + userMapper.insert(user));
// 更新测试
System.out.println("------------ 更新测试 ------------");
user = new User();
user.setId(1L);
user.setTelephone("111111");
System.out.println("update: " + userMapper.updateById(user));
// 获取测试
System.out.println("------------ 获取测试 ------------");
System.out.println("user: " + userMapper.getById(1L));
// 删除测试
System.out.println("------------ 删除测试 ------------");
System.out.println("delete: " + userMapper.deleteById(1L));
// 存在测试
System.out.println("------------ 存在测试 ------------");
System.out.println("exist: " + userMapper.existById(1L));
System.out.println("all"+userMapper.getAll());
}
}
新建测试Mapper类,这里的BaseMapper请参考Mybatis修改
@Mapper
public interface UserMapper extends BaseMapper<User,Long> {
@Select("select * from user ")
List<User> getAll();
}
OK,配置完毕,运行测试类即可。