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(); // } }
如上,完成了mybatisplus的初始化。
另外,Mybatisplus还有自己的注解,如@TableName、@TableId(IdType)。my强大之处在于对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> { }
测试用例:
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()); } }
▄︻┻┳═一参阅: