buguge - Keep it simple,stupid

知识就是力量,但更重要的,是运用知识的能力why buguge?

导航

springboot项目集成mybatisplus两部曲

MyBatis-Plus(简称 MP),号称为简化开发、提高效率而生。是一个 MyBatis 的增强工具,在 MyBatis 的基础上只做增强不做改变。相比其他mybatis增强工具,如tk-mybatis,使用起来更顺手。

§1/3 安装

§1.1 jar包依赖

        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-boot-starter</artifactId>
            <version>3.1.2</version>
        </dependency>

§1.2其他相关包

当然, 我们通常用mysql数据库,所以自然要依赖mysql连接驱动包。其他的比较重要的依赖还有lombok等。

        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>8.0.17</version>
            <scope>runtime</scope>
        </dependency>

§2/3 配置

§2.1 application.yml中mp配置:

mybatis-plus:
  # sqlmapper xml文件所在位置(Locations of MyBatis mapper files.)  不过,话说,用mp,单表操作基本上就告别mybatis那些传统的mapper.xml文件了。
  mapper-locations: classpath*:com/umpsys/web/modules/**/xml/*Mapper.xml
  global-config:
    db-config:
      id-type: auto
      field-strategy: not_empty
      #驼峰下划线转换
      column-underline: true
      #逻辑删除配置
      logic-delete-value: 0
      logic-not-delete-value: 1
      db-type: mysql
    refresh: false
  configuration:
    map-underscore-to-camel-case: true
    cache-enabled: false
    # 这个配置会将执行的sql打印出来,在开发或测试的时候可以用
    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl

数据库配置用jdbc:

spring:
  datasource:
    url: jdbc:mysql://192.168.40.22:3306/mptest?characterEncoding=utf-8&serverTimezone=Asia/Shanghai
    username: root
    password: ***

§2.2 声明@MapperScan

定义名为MybatisPlusConfig的bean,主要是用@MapperScan注解定义扫描Mapper类所在的package。

当然,没有这个bean也行,那就要在springboot启动类加上这个@MapperScan注解。

【注:】包路径支持*通配符,例如:@MapperScan(value={"com.longwms.webapp.modules.**.mapper*"})

package com.umpsys.web.util;

import com.baomidou.mybatisplus.extension.plugins.PaginationInterceptor;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

/**
 * @Author zhoujf
 *
 */
@Configuration
@MapperScan(value={"com.umpsys.web.mapper"})
public class MybatisPlusConfig {

    /**
         *  分页插件
     */
    @Bean
    public PaginationInterceptor paginationInterceptor() {
        // 设置sql的limit为无限制,默认是500
        return new PaginationInterceptor().setLimit(-1);
    }
    
//    /**
//     * mybatis-plus SQL执行效率插件【生产环境可以关闭】
//     */
//    @Bean
//    public PerformanceInterceptor performanceInterceptor() {
//        return new PerformanceInterceptor();
//    }
    
   
}
View Code

 

 

如上,完成了mybatisplus的初始化。

另外,Mybatisplus还有自己的注解,如@TableName、@TableId(IdType)。mp强大之处在于对lambda表达式的支持。参见MyBatis-Plus官方文档: https://mybatis.plus/guide

mp的官网域名原来是https://mp.baomidou.com/,后来有网友捐赠了同名域名mybaits.plus,更契合了mybatis-plus这个名字,真是天作之合!

 

接下来,就可以使用了。

用mp逆向工程可以生成一个数据表对应的实体PO类、Mapper类。

package com.umpsys.web.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.umpsys.web.entity.BankType;
//import tk.mybatis.mapper.common.Mapper;

/**
 * 描    述:
 * <p>
 * 创 建 者: gz.zhang
 * 创建时间: 2019-9-9 19:33:13
 * 创建描述:
 */
//public interface BankTypeMapper extends Mapper<BankType> {
public interface BankTypeMapper extends BaseMapper<BankType> {
}
View Code

测试用例:

package com.umpsys.web.mapper;

import com.umpsys.web.entity.BankType;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;

import java.util.List;

@SpringBootTest
@RunWith(SpringRunner.class)
public class BankTypeMapperTest {

    @Autowired
    private BankTypeMapper bankTypeMapper;

    @Test
    public void list(){
        List<BankType> bankTypes = bankTypeMapper.selectList(null);
        System.out.println(bankTypes.size());
    }
}
View Code

 

 

 

▄︻┻┳═一参阅:

▄︻┻┳═一SpringBoot项目里,让TKmybatis支持可以手写sql的Mapper.xml文件

▄︻┻┳═一springboot项目集成mybatisplus两部曲

posted on 2020-03-21 15:40  buguge  阅读(825)  评论(0编辑  收藏  举报