«

springboot 2.4集成mybatis-plus

时间:2024-5-15 16:23     作者:紫琪软件工作室     分类: mybatis-plus


1、pom版本号引入

<fastjson.version>1.2.62</fastjson.version>
<mybatis-plus.version>3.4.0</mybatis-plus.version>

2、pom.xml引入

<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>fastjson</artifactId>
    <version>${fastjson.version}</version>
</dependency>

<dependency>
    <groupId>org.projectlombok</groupId>
    <artifactId>lombok</artifactId>
    <optional>true</optional>
</dependency>

<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <scope>runtime</scope>
</dependency>

<!--mybatis-plus-->
<dependency>
    <groupId>com.baomidou</groupId>
    <artifactId>mybatis-plus-boot-starter</artifactId>
    <version>${mybatis-plus.version}</version>
</dependency>
<dependency>
    <groupId>com.baomidou</groupId>
    <artifactId>mybatis-plus-extension</artifactId>
    <version>${mybatis-plus.version}</version>
</dependency>
<dependency>
    <groupId>com.baomidou</groupId>
    <artifactId>mybatis-plus</artifactId>
    <version>${mybatis-plus.version}</version>
</dependency>

3、application.yml 配置

spring:
  #  jackson 格式
  jackson:
    date-format: yyyy-MM-dd HH:mm:ss
    time-zone: GMT+8
  datasource:
    url: jdbc:mysql://localhost:3306/databaseName?characterEncoding=utf-8&useSSL=false&serverTimezone=UTC&rewriteBatchedStatements=true&allowMultiQueries=true&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true
    username: user
    password: pwd
    driver-class-name: com.mysql.cj.jdbc.Driver
#mybatis-plus
mybatis-plus:
  mapper-locations: classpath:/mapper/**/*Mapper.xml
  type-aliases-package: cn.*.model
  # 实体基类
  type-aliases-super-type: cn.base.model.BaseBean
  # 实体内部使用枚举类包路径
  type-enums-package: cn.*.defaultEnum
  configuration:
    local-cache-scope: statement
    default-enum-type-handler: com.baomidou.mybatisplus.extension.handlers.MybatisEnumTypeHandler
    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
  global-config:
    # 自定义Mapper顶级接口
    super-mapper-class: cn.base.mybatis.plus.mapper.IDefaultBaseMapper
    db-config:
      id-type: AUTO

4、分页插件支持

/**
 * mybatis-plus 配置类
 *
 * @version V1.0
 * @author jj-tech
 * @date 2020-10-15 11:17
 **/
@EnableTransactionManagement
@Configuration
@MapperScan(basePackages = "mapper接口包")
public class MybatisPlusConfig {

    /**
     * 新的分页插件,一缓和二缓遵循mybatis的规则,需要设置 MybatisConfiguration#useDeprecatedExecutor = false 避免缓存出现问题(该属性会在旧插件移除后一同移除)
     */
    @Bean
    public MybatisPlusInterceptor mybatisPlusInterceptor() {
        MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
        interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL));
        return interceptor;
    }

}

5、如配置了自定义Mapper基类,所有Mapper需要集成BaseMapper

6、自定义枚举类,存入数据库字段的值,需添加注解@EnumValue:例如

import com.baomidou.mybatisplus.annotation.EnumValue;

/**
 * 文件类型枚举类
 * @author ZhangJi
 */
public enum AffixType {

    /**
     * 文件
     */
    FILE(1, "文件"),

    /**
     * 文件夹
     */
    FOLDER(2, "文件夹");

    @EnumValue
    private final Integer value;

    private final String desc;

    AffixType(Integer value, String desc) {
        this.value = value;
        this.desc = desc;
    }

    @Override
    public String toString() {
        return "FileType{" +
                "value=" + value +
                ", desc='" + desc + '\'' +
                '}';
    }
}

疑问留言:1770202799@qq.com