Spring Boot 集成mybatis 分頁實現以及單元測試

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的單元測試的配置,請參考:

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章