springboot项目集成mybatisplus两部曲
原创
©著作权归作者所有:来自51CTO博客作者buguge的原创作品,请联系作者获取转载授权,否则将追究法律责任
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两部曲