最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

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包,新建一個配置類
  • 一般添加插件直接使用
@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;
    }
}

自動填充

  • 首先在實體類上需要添加注解
@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ù)庫中是下劃線,實體類要駝峰
    @TableField(fill = FieldFill.INSERT)
    private Date createTime;

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

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

    @TableLogic
    private Integer deleted;

}

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

在其中進行自動填充配置

@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目錄中,因為只使用一次

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 方法控制臺輸入模塊表名回車自動生成對應項目目錄中
    @Test
    public void test(){
        FastAutoGenerator.create("jdbc:mysql://localhost:3306/guli_edu?useUnicode=true&characterEncoding=utf8",
                "root", "123456")
                .globalConfig(builder -> {
                    builder.author("sucker") // 設置作者
                            .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") // 設置父包名
                            .moduleName("eduservice") // 設置父包模塊名
                            .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")); // 設置mapperXml生成路徑
                })
                .strategyConfig(builder -> {
                    builder.addInclude("edu_teacher") // 設置需要生成的表名
                            .addTablePrefix("t_", "c_") // 設置過濾表前綴
                            .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引擎模板,默認的是Velocity引擎模板
                .execute();

    }

}

總結

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

相關文章

  • Spring?boot詳解fastjson過濾字段為null值如何解決

    Spring?boot詳解fastjson過濾字段為null值如何解決

    這篇文章主要介紹了解決Spring?boot中fastjson過濾字段為null值的問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-07-07
  • java實現(xiàn)創(chuàng)建臨時文件然后在程序退出時自動刪除文件

    java實現(xiàn)創(chuàng)建臨時文件然后在程序退出時自動刪除文件

    這篇文章主要介紹了java實現(xiàn)創(chuàng)建臨時文件然后在程序退出時自動刪除文件,從個人項目中提取出來的,小伙伴們可以直接拿走使用。
    2015-02-02
  • 使用IntelliJ IDEA 15和Maven創(chuàng)建Java Web項目(圖文)

    使用IntelliJ IDEA 15和Maven創(chuàng)建Java Web項目(圖文)

    本篇文章主要介紹了使用IntelliJ IDEA 15和Maven創(chuàng)建Java Web項目(圖文),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-09-09
  • Java?Stream?流中?Collectors.toMap?的用法詳解

    Java?Stream?流中?Collectors.toMap?的用法詳解

    這篇文章主要介紹了Stream?流中?Collectors.toMap?的用法,Collectors.toMap()方法是把List轉Map的操作,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2024-01-01
  • IDEA快捷鍵和各種實用功能小結

    IDEA快捷鍵和各種實用功能小結

    這篇文章主要介紹了IDEA快捷鍵總結和各種實用功能,包括IDEA中內(nèi)容輔助鍵和快捷鍵,修改自動補全快捷鍵,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-08-08
  • Spring?MVC中的Controller進行單元測試的實現(xiàn)

    Spring?MVC中的Controller進行單元測試的實現(xiàn)

    本文主要介紹了如何對Spring?MVC中的Controller進行單元測試的實現(xiàn),文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-02-02
  • java實現(xiàn)時鐘表盤

    java實現(xiàn)時鐘表盤

    這篇文章主要為大家詳細介紹了java實現(xiàn)時鐘表盤,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-09-09
  • Sentinel初始化啟動流程詳細介紹

    Sentinel初始化啟動流程詳細介紹

    Sentinel是一個分布式系統(tǒng)的流量控制組件,它可以實現(xiàn)限流與流控及降級等功能,提高系統(tǒng)的穩(wěn)定性和可靠性,這篇文章主要介紹了Sentinel的初始化流程,感興趣想要詳細了解可以參考下文
    2023-05-05
  • @RunWith注解的使用及說明

    @RunWith注解的使用及說明

    @RunWith注解用于指定測試運行器,SpringRunner(需JUnit4.12+)和SpringJUnit4ClassRunner(舊版)可集成Spring環(huán)境,@ContextConfiguration配合加載配置并自動注入Bean,簡化測試配置
    2025-09-09
  • Springboot 項目讀取Resources目錄下的文件(推薦)

    Springboot 項目讀取Resources目錄下的文件(推薦)

    這篇文章主要介紹了Springboot 項目讀取Resources目錄下的文件,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-11-11

最新評論

宁河县| 淳化县| 益阳市| 策勒县| 大冶市| 普宁市| 高州市| 阿荣旗| 侯马市| 泊头市| 台东市| 垫江县| 舒城县| 陈巴尔虎旗| 光泽县| 莫力| 嘉兴市| 安吉县| 岚皋县| 青阳县| 乐都县| 右玉县| 开远市| 吉水县| 车致| 永安市| 富民县| 宁陕县| 南投市| 阳原县| 佛山市| 犍为县| 巫溪县| 晴隆县| 阿城市| 宁蒗| 开封县| 云安县| 利川市| 孟津县| 富裕县|