欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

MybatisPlus常用依賴、配置、插件方式

 更新時(shí)間:2024年07月27日 10:58:34   作者:Sucker_蘇  
這篇文章主要介紹了MybatisPlus常用依賴、配置、插件方式,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

MybatisPlus常用依賴、配置、插件

依賴

<dependency>
    <groupId>com.baomidou</groupId>
    <artifactId>mybatis-plus-generator</artifactId>
    <version>3.5.1</version>
</dependency>

<dependency>
    <groupId>com.baomidou</groupId>
    <artifactId>mybatis-plus-boot-starter</artifactId>
    <version>3.4.3</version>
</dependency>

<!-- velocity 模板引擎, Mybatis Plus 代碼生成器需要 -->
<dependency>
    <groupId>org.apache.velocity</groupId>
    <artifactId>velocity-engine-core</artifactId>
    <version>${velocity.version}</version>
</dependency>

插件配置

  • 一般建立config包,新建一個(gè)配置類
  • 一般添加插件直接使用
@Configuration
@MapperScan(value = "com.sucker.eduservice.mapper")
public class EduConfig {

    //mybatis-plus插件配置
    @Bean
    public MybatisPlusInterceptor mybatisPlusInterceptor() {
        MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
        interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.H2));//分頁插件
        interceptor.addInnerInterceptor(new OptimisticLockerInnerInterceptor());//樂觀鎖插件
        return interceptor;
    }
}

自動(dòng)填充

  • 首先在實(shí)體類上需要添加注解
@TableField(fill = FieldFill.INSERT)
  • 若需要給id添加值,則加上注解
@TableId(type = IdType.ASSIGN_ID)

此處例子ID是在數(shù)據(jù)庫中自增因此沒有使用該注解

@Data
@AllArgsConstructor
@NoArgsConstructor
public class User {
    private Long id;
    private String name;
    private Integer age;
    private String email;

    //數(shù)據(jù)庫中是下劃線,實(shí)體類要駝峰
    @TableField(fill = FieldFill.INSERT)
    private Date createTime;

    @TableField(fill = FieldFill.INSERT_UPDATE)//自動(dòng)填充注解
    private Date updateTime;

    @Version
    @TableField(fill = FieldFill.INSERT)
    private Integer version;//版本號

    @TableLogic
    private Integer deleted;

}

在新建handler包,新建MyMetaObjectHandler類,需要實(shí)現(xiàn)MetaObjectHandler

在其中進(jìn)行自動(dòng)填充配置

@Component
public class MyMetaObjectHandler implements MetaObjectHandler {
    @Override
    public void insertFill(MetaObject metaObject) {
        this.setFieldValByName("createTime", new Date(), metaObject);
        this.setFieldValByName("updateTime", new Date(), metaObject);

        this.setFieldValByName("version", 1, metaObject);
    }

    @Override
    public void updateFill(MetaObject metaObject) {
        this.setFieldValByName("updateTime", new Date(), metaObject);
    }
}

代碼生成器配置

一般只寫在test目錄中,因?yàn)橹皇褂靡淮?/p>

package com.sucker.demo;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.generator.FastAutoGenerator;
import com.baomidou.mybatisplus.generator.config.OutputFile;
import com.baomidou.mybatisplus.generator.config.rules.DateType;
import com.baomidou.mybatisplus.generator.engine.VelocityTemplateEngine;
import org.junit.Test;

import java.util.Collections;


public class CodeGenerator {
    // 演示例子,執(zhí)行 main 方法控制臺輸入模塊表名回車自動(dòng)生成對應(yīng)項(xiàng)目目錄中
    @Test
    public void test(){
        FastAutoGenerator.create("jdbc:mysql://localhost:3306/guli_edu?useUnicode=true&characterEncoding=utf8",
                "root", "123456")
                .globalConfig(builder -> {
                    builder.author("sucker") // 設(shè)置作者
                            .enableSwagger() // 開啟 swagger 模式
                            .dateType(DateType.ONLY_DATE)
                            .fileOverride()
                            .outputDir("D:\\JavaCode\\gulimall\\guli_parent1\\service\\service_edu"+"\\src\\main\\java"); // 指定輸出目錄
                })
                .packageConfig(builder -> {
                    builder.parent("com.sucker") // 設(shè)置父包名
                            .moduleName("eduservice") // 設(shè)置父包模塊名
                            .controller("controller")
                            .entity("entity")
                            .service("service")
                            .mapper("mapper")
                            .xml("mapper")
                            .pathInfo(Collections.singletonMap(OutputFile.mapperXml,
                                    "D:\\JavaCode\\gulimall\\guli_parent1\\service\\service_edu\\src\\main\\resources\\mapper")); // 設(shè)置mapperXml生成路徑
                })
                .strategyConfig(builder -> {
                    builder.addInclude("edu_teacher") // 設(shè)置需要生成的表名
                            .addTablePrefix("t_", "c_") // 設(shè)置過濾表前綴
                            .serviceBuilder()
                            .formatServiceFileName("%sService")
                            .entityBuilder()
                            .enableLombok()
                            .logicDeleteColumnName("is_deleted")
                            .enableTableFieldAnnotation()
                            .controllerBuilder()
                            .formatFileName("%sController")
                            .enableRestStyle()
                            .mapperBuilder()
                            .enableBaseResultMap()
                            .superClass(BaseMapper.class)
                            .formatMapperFileName("%sMapper")
                            .enableMapperAnnotation()
                            .formatXmlFileName("%sMapper");
                })
                .templateEngine(new VelocityTemplateEngine()) // 使用Freemarker引擎模板,默認(rèn)的是Velocity引擎模板
                .execute();

    }

}

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Java四種常用線程池的詳細(xì)介紹

    Java四種常用線程池的詳細(xì)介紹

    今天小編就為大家分享一篇關(guān)于Java四種常用線程池的詳細(xì)介紹,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧
    2019-03-03
  • 用java生成html文件實(shí)現(xiàn)原理及代碼

    用java生成html文件實(shí)現(xiàn)原理及代碼

    用printStream來向html文件里輸出數(shù)據(jù),先創(chuàng)建一個(gè)StringBuilder對象,通過append方法來為其添加html語句,具體實(shí)現(xiàn)如下,感興趣的朋友可以參考下,希望對大家有所幫助
    2013-08-08
  • Springboot+TCP監(jiān)聽服務(wù)器搭建過程圖解

    Springboot+TCP監(jiān)聽服務(wù)器搭建過程圖解

    這篇文章主要介紹了Springboot+TCP監(jiān)聽服務(wù)器搭建過程,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-10-10
  • SpringBoot使用Kafka來優(yōu)化接口請求的并發(fā)方式

    SpringBoot使用Kafka來優(yōu)化接口請求的并發(fā)方式

    這篇文章主要介紹了SpringBoot使用Kafka來優(yōu)化接口請求的并發(fā)方式,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-07-07
  • Java中的觀察者模式實(shí)例講解

    Java中的觀察者模式實(shí)例講解

    這篇文章主要介紹了Java中的觀察者模式實(shí)例講解,本文先是講解了觀察者模式的概念,然后以實(shí)例講解觀察者模式的實(shí)現(xiàn),以及給出了UML圖,需要的朋友可以參考下
    2014-12-12
  • Spring?Cloud?中使用?Sentinel?實(shí)現(xiàn)服務(wù)限流的兩種方式

    Spring?Cloud?中使用?Sentinel?實(shí)現(xiàn)服務(wù)限流的兩種方式

    這篇文章主要介紹了Spring?Cloud?中使用?Sentinel?實(shí)現(xiàn)服務(wù)限流的方式,通過示例代碼主要介紹了Sentinel的兩種實(shí)現(xiàn)限流的方式,需要的朋友可以參考下
    2024-03-03
  • 簡單了解JAVA構(gòu)造方法

    簡單了解JAVA構(gòu)造方法

    構(gòu)造方法作用就是對類進(jìn)行初始化。 如果你沒有定議任何構(gòu)造方法的形式,程式會(huì)為你取一個(gè)不帶任何參數(shù)的構(gòu)造函數(shù),那么你產(chǎn)生類的對像時(shí)只能用不帶參數(shù)的方法.下面小編和大家來一起學(xué)習(xí)一下吧
    2019-06-06
  • Java之如何讀取Excel獲取真實(shí)行數(shù)

    Java之如何讀取Excel獲取真實(shí)行數(shù)

    這篇文章主要介紹了Java之如何讀取Excel獲取真實(shí)行數(shù)問題,具有很好的參考價(jià)值,希望對大家有所幫助。
    2023-06-06
  • Spring中的動(dòng)態(tài)數(shù)據(jù)源解讀

    Spring中的動(dòng)態(tài)數(shù)據(jù)源解讀

    這篇文章主要介紹了關(guān)于Spring中的動(dòng)態(tài)數(shù)據(jù)源解讀,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-06-06
  • MybatisPlus條件查詢的具體使用

    MybatisPlus條件查詢的具體使用

    MybatisPlus通過條件構(gòu)造器可以組裝復(fù)雜的查詢條件,本文主要介紹了MybatisPlus條件查詢的具體使用,具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-01-01

最新評論