依赖项:
org.springframework.boot: spring-boot-starter-web:
com.baomidou: mybatis-plus-annotation: 3.4.2
mysql:mysql-connector-java:8.0.22
org.projectlombok: lombok
com.baomidou:mybatis-plus-boot-starter:3.4.2
代码自动生成:
org.freemarker:freemarker:2.3.30
com.baomidou: mybatis-plus-generator: 3.4.1
依赖项
注意:mybatis-plus版本匹配,否则可能找不到类。
常用注解:
@MapperScan(package):搜索包里的映射
配置文件:application.yml
# DataSource Config
spring:
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql:~/~/localhost:3306/test?serverTimezone=GMT
username: root
password: root
代码生成器:https://mp.baomidou.com/guide/generator.html
@Autowired如果有两个@Service匹配,则需要在实现上加@Primary。
查询封装:
QueryWrapper
wrapper.gt("age", 20);
wrapper.like("name", keyword);
List
分页:
Page
page.setCurrent(current);
page.setSize(size);
return service.page(page);
常见问题
- MyBatis-Plus最多返回500条数据。
在SpringBoot/SpringCloud项目中config文件夹添加以下代码即可。
package com.hylab.dap.config;
import com.baomidou.mybatisplus.annotation.DbType;
import com.baomidou.mybatisplus.autoconfigure.ConfigurationCustomizer;
import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor;
import com.baomidou.mybatisplus.extension.plugins.PaginationInterceptor;
import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
/~*~*
~ * MyBatisPlus配置文件
~ */
@Configuration
public class MyBatisPlusConfig {
~ @Bean
~ public MybatisPlusInterceptor mybatisPlusInterceptor() {
~ MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
~ interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL));
~ return interceptor;
~ }
~ public PaginationInterceptor paginationInterceptor() {
~ PaginationInterceptor paginationInterceptor = new PaginationInterceptor();
~ paginationInterceptor.setLimit(100000);
~ return paginationInterceptor;
~ }
~ public ConfigurationCustomizer configurationCustomizer() {
~ return configuration -> configuration.setUseDeprecatedExecutor(false);
~ }
}