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,配置完畢,運行測試類即可。