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 }

 

posted @ 2020-10-07 19:16  Zr0118  阅读(212)  评论(0编辑  收藏  举报