mybatis-plus整合springboot与使用方式

发布于:2025-04-16 ⋅ 阅读:(26) ⋅ 点赞:(0)

注解

@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.entity

spring:
  application:
    name: test
  datasource:
    # 驱动
    driver-class-name: com.mysql.cj.jdbc.Driver
    # 连接串
    url: jdbc:mysql://192.168.5.10:3306/Shop
    username: root
    password: root
    initialSize: 1
    timeBetweenEvictionRunsMillis: 60000
    validationQuery: SELECT 1 FROM dual
    hikari:
      # 连接池name
      pool-name: seckill-system
      # 最小空闲连接
      minimum-idle: 5
      # 空闲连接最大时间  默认10分钟
      idle-timeout: 180000
      # 最大连接数, 默认10
      maximum-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")