1. 程式人生 > 實用技巧 >Spring Boot 整合MyBatis框架

Spring Boot 整合MyBatis框架

第一步:新增mybatis啟動依賴

1 <dependency>
2     <groupId>org.mybatis.spring.boot</groupId>
3     <artifactId>mybatis-spring-boot-starter</artifactId>
4         <version>2.1.1</version>      
5 </dependency>

注意:在新增此依賴時,一定指定其版本(version),因為在springboot預設配置中沒有設定mybatis框架版本。

我們添加了mybatis依賴以後,spring框架啟動時會對mybatis進行自動配置。例如SqlSessionFactory工廠物件的建立。

第二步:Mybatis簡易配置

1 mybatis.configuration.default-statement-timeout=30
2 mybatis.configuration.map-underscore-to-camel-case=true
3 #配置mybatis中的sql日誌的輸出:(com.cy為我們寫的專案的根包)
4 logging.level.com.cy=DEBUG

第三步:定義商品業務資料層介面及業務方法。

1 package
com.cy.pj.goods.dao; 2 import org.apache.ibatis.annotations.Delete; 3 import org.apache.ibatis.annotations.Mapper; 4 @Mapper 5 public interface GoodsDao { 6 @Delete("delete from tb_goods where id=#{id}") 7 int deleteById(Integer id); 8 }

第四步:定義測試類,對GoodsDao物件進行應用測試

 1 @SpringBootTest
2 public class GoodsDaoTests { 3 4 @Autowired 5 private GoodsDao goodsDao; 6 7 @Test 8 public void testDeleteById() { 9 int rows=goodsDao.deleteById(10); 10 System.out.println("rows="+rows); 11 } 12 }

第五步:業務進階分析及實現

Step01:在GoodsDao中,定義刪除方法,具體程式碼如下:

1 int deleteObjects(@Param("ids")Integer... ids);

Step02:在src/main/resources目錄下建立mapper/goods目錄,然後在其目錄中新增GoodsMapper.xml對映檔案(檔名可自己指定),並新增如下內容:

 1 <?xml version="1.0" encoding="UTF-8"?>
 2 <!DOCTYPE mapper
 3   PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 4   "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 5 <mapper namespace="com.cy.pj.goods.dao.GoodsDao">
 6    <delete id="deleteObjects">
 7        delete from tb_goods
 8        where id in <!-- (1,2,3,4,5) -->
 9        <foreach collection="ids"
10                 open="("
11                 close=")"
12                 separator=","
13                 item="id">
14                #{id}
15        </foreach>
16    </delete>
17 </mapper>

Step03:在application.properties檔案中新增如下配置:

1 mybatis.mapper-locations=classpath:/mapper/*/*.xml

Step04:在GoodsDaoTests類中新增如下單元測試方法進行單元測試:

1 @Test
2 public void testDeleteObjects() {
3     int rows=goodsDao.deleteObjects(17,18);
4     System.out.println(rows);
5 }