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这个名字,真是天作之合!

springboot项目集成mybatisplus两部曲_springboot

 

接下来,就可以使用了。

用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两部曲