mybatis-plus整合springboot与使用方式
注解
@TableField(exist = false):表示该属性不为数据库表字段,但又是必须使用的。
整合springboot
pom
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>org.example</groupId><artifactId>test</artifactId><version>1.0-SNAPSHOT</version><packaging>jar</packaging><properties><maven.compiler.source>17</maven.compiler.source><maven.compiler.target>17</maven.compiler.target><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><spring-boot-version>3.0.4</spring-boot-version></properties><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId><version>${spring-boot-version}</version><exclusions><exclusion><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-tomcat</artifactId></exclusion></exclusions></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-tomcat</artifactId><version>${spring-boot-version}</version></dependency><!-- https://mvnrepository.com/artifact/org.projectlombok/lombok --><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><version>1.18.24</version></dependency><dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-spring-boot3-starter</artifactId><version>3.5.5</version><exclusions><exclusion><groupId>org.springframework.boot</groupId><artifactId>spring-boot-test-autoconfigure</artifactId></exclusion><exclusion><groupId>org.springframework.boot</groupId><artifactId>spring-boot-autoconfigure</artifactId></exclusion></exclusions></dependency><!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java --><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>8.0.33</version></dependency><dependency><groupId>org.slf4j</groupId><artifactId>slf4j-api</artifactId><version>2.0.6</version></dependency></dependencies><build><resources><resource><directory>src/main/resources</directory><includes><include>**</include></includes></resource></resources></build>
</project>
application.yml
mybatis-plus:configuration:# 打印日志log-impl: org.apache.ibatis.logging.stdout.StdOutImpl# 实体类的包type-aliases-package: org.example.entityspring:application:name: testdatasource:# 驱动driver-class-name: com.mysql.cj.jdbc.Driver# 连接串url: jdbc:mysql://192.168.5.10:3306/Shopusername: rootpassword: rootinitialSize: 1timeBetweenEvictionRunsMillis: 60000validationQuery: SELECT 1 FROM dualhikari:# 连接池namepool-name: seckill-system# 最小空闲连接minimum-idle: 5# 空闲连接最大时间 默认10分钟idle-timeout: 180000# 最大连接数, 默认10maximum-pool-size: 10# 从连接池返回的连接自动提交auto-commit: true# 连接最大存活时间 0表示永久存货, 默认半小时max-lifetime: 180000# 连接超时时间,m默认30秒connection-timeout: 30000# 测试连接是否是可用的查询语句
生成sql
查询
复合查询
and/or嵌套查询
// A and B
.eq("a", "A").eq("b",B);// A or B
.eq("a", "A").or().eq("b",B);// A or (B and C)
.eq("a", "A").or(i -> i.eq("b", "B").eq("c", "C"));// A or (B or C)
.eq("a", "A").or(i -> i.eq("b", "B").or().eq("c", "C"));// A and (B and C)
.eq("a", "A").and(i -> i.eq("b", "B").eq("c", "C"));// A and (B or C)
.eq("a", "A").and(i -> i.eq("b", "B").or().eq("c", "C"));
带判断的条件查询
.eq(true,test.getA(),"1")