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

MyBatis-Plus逆向工程——Generator的使用

 更新時間:2021年01月10日 14:36:56   作者:賀志營  
這篇文章主要介紹了MyBatis-Plus逆向工程——Generator的使用,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

有一位志同道合的朋友給我留言說,MyBatis-Plus的逆向工程跟接口繼承BaseMapper有什么區(qū)別,我想了想,怎么解釋都不合適,最后決定出此文章進行講解。

環(huán)境搭建

首先創(chuàng)建一張數(shù)據(jù)庫表

DROP TABLE IF EXISTS user;

CREATE TABLE user
(
 id BIGINT(20) NOT NULL COMMENT '主鍵ID',
 name VARCHAR(30) NULL DEFAULT NULL COMMENT '姓名',
 age INT(11) NULL DEFAULT NULL COMMENT '年齡',
 email VARCHAR(50) NULL DEFAULT NULL COMMENT '郵箱',
 PRIMARY KEY (id)
);

對應(yīng)的數(shù)據(jù)如下

DELETE FROM user;

INSERT INTO user (id, name, age, email) VALUES
(1, 'Jone', 18, 'test1@baomidou.com'),
(2, 'Jack', 20, 'test2@baomidou.com'),
(3, 'Tom', 28, 'test3@baomidou.com'),
(4, 'Sandy', 21, 'test4@baomidou.com'),
(5, 'Billie', 24, 'test5@baomidou.com');

創(chuàng)建SpringBoot項目

創(chuàng)建一個普通的SpringBoot項目,然后引入依賴,既然要跟數(shù)據(jù)庫打交道,connector肯定不能少

<dependency>
  <groupId>mysql</groupId>
  <artifactId>mysql-connector-java</artifactId>
  <version>8.0.18</version>
</dependency>

另外要使用mybatis-plus,當(dāng)然也要引入該starter

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

由于需要用到逆向工程,所以引入依賴

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

還需要一個模板引擎的依賴

<dependency>
  <groupId>org.apache.velocity</groupId>
  <artifactId>velocity-engine-core</artifactId>
  <version>2.1</version>
</dependency>

為了方便起見,這里引入Lombok

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

然后編寫一個類,直接執(zhí)行即可!

class AutoCode {
  public static void main(String[] args) {
    // 1、全局配置
    GlobalConfig globalConfig = new GlobalConfig();//構(gòu)建全局配置對象
    String projectPath = System.getProperty("user.dir");// 獲取當(dāng)前用戶的目錄
    globalConfig
        .setOutputDir(projectPath + "/mybatis-plus-01-start/src/main/java")// 輸出文件路徑
        .setAuthor("微信搜一搜:賀賀學(xué)編程")// 設(shè)置作者名字
        .setOpen(false)// 是否打開資源管理器
        .setFileOverride(true)// 是否覆蓋原來生成的
        .setIdType(IdType.AUTO)// 主鍵策略
        .setBaseResultMap(true)// 生成resultMap
        .setBaseColumnList(true)// XML中生成基礎(chǔ)列
        .setServiceName("%sService");// 生成的service接口名字首字母是否為I,這樣設(shè)置就沒有I

    // 2、數(shù)據(jù)源配置
    DataSourceConfig dataSourceConfig = new DataSourceConfig();// 創(chuàng)建數(shù)據(jù)源配置
    dataSourceConfig
        .setUrl("jdbc:mysql://127.0.0.1:3306/mybatis_plus?userSSL=false&useUnicode=true&characterEncoding=UTF-8&serverTimezone=UTC")
        .setDriverName("com.mysql.cj.jdbc.Driver")
        .setUsername("root")
        .setPassword("root")
        .setDbType(DbType.MYSQL);

    // 3、包配置
    PackageConfig packageConfig = new PackageConfig();
    packageConfig
        .setParent("com.hzy")
        .setEntity("entity")
        .setController("controller")
        .setService("service")
        .setMapper("mapper");

    // 4、策略配置
    StrategyConfig strategyConfig = new StrategyConfig();
    strategyConfig
        .setCapitalMode(true)// 開啟全局大寫命名
        .setInclude("user")// 設(shè)置要映射的表
        .setNaming(NamingStrategy.underline_to_camel)// 下劃線到駝峰的命名方式
        .setColumnNaming(NamingStrategy.underline_to_camel)// 下劃線到駝峰的命名方式
        .setEntityLombokModel(false)// 是否使用lombok
        .setRestControllerStyle(true)// 是否開啟rest風(fēng)格
        .setControllerMappingHyphenStyle(true);// localhost:8080/hello_a_2


    // 5、自定義配置(配置輸出xml文件到resources下)
    InjectionConfig cfg = new InjectionConfig() {
      @Override
      public void initMap() {
        // to do nothing
      }
    };
    List<FileOutConfig> focList = new ArrayList<>();
    String templatePath = "/templates/mapper.xml.vm";
    // 自定義配置會被優(yōu)先輸出
    focList.add(new FileOutConfig(templatePath) {
      @Override
      public String outputFile(TableInfo tableInfo) {
        // 自定義輸出文件名 , 如果你 Entity 設(shè)置了前后綴、此處注意 xml 的名稱會跟著發(fā)生變化?。?
        return projectPath + "/mybatis-plus-01-start/src/main/resources/mapper/"
            + tableInfo.getEntityName() + "Mapper" + StringPool.DOT_XML;
      }
    });
    cfg.setFileOutConfigList(focList);

    // 6、整合配置
    AutoGenerator autoGenerator = new AutoGenerator();// 構(gòu)建代碼生自動成器對象
    autoGenerator
        .setGlobalConfig(globalConfig)// 將全局配置放到代碼生成器對象中
        .setDataSource(dataSourceConfig)// 將數(shù)據(jù)源配置放到代碼生成器對象中
        .setPackageInfo(packageConfig)// 將包配置放到代碼生成器對象中
        .setStrategy(strategyConfig)// 將策略配置放到代碼生成器對象中
        .setCfg(cfg)// 將自定義配置放到代碼生成器對象中
        .execute();// 執(zhí)行!
  }
}

執(zhí)行結(jié)果如下


代碼中的注釋比較多,我就不多說了

到此這篇關(guān)于MyBatis-Plus逆向工程——Generator的使用的文章就介紹到這了,更多相關(guān)MyBatis-Plus逆向工程內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 解析MyBatisPlus解決邏輯刪除與唯一索引的兼容問題

    解析MyBatisPlus解決邏輯刪除與唯一索引的兼容問題

    這篇文章主要介紹了MyBatisPlus解決邏輯刪除與唯一索引的兼容問題,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-04-04
  • JVM創(chuàng)建對象及訪問定位過程詳解

    JVM創(chuàng)建對象及訪問定位過程詳解

    這篇文章主要介紹了JVM創(chuàng)建對象及訪問定位過程詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-12-12
  • springboot在filter中如何用threadlocal存放用戶身份信息

    springboot在filter中如何用threadlocal存放用戶身份信息

    這篇文章主要介紹了springboot中在filter中如何用threadlocal存放用戶身份信息,本文章主要描述通過springboot的filter類,在過濾器中設(shè)置jwt信息進行身份信息保存的方法,需要的朋友可以參考下
    2024-07-07
  • java中TestNG使用教程詳解

    java中TestNG使用教程詳解

    TestNG是Java中的一個測試框架, 類似于JUnit 和NUnit, 本文主要介紹了java中TestNG使用教程詳解,具有一定的參考價值,感興趣的可以了解一下
    2021-12-12
  • SpringBoot使用JSch操作Linux的方法

    SpringBoot使用JSch操作Linux的方法

    JSch是一個Java庫,它提供了SSH(Secure?Shell)的Java實現(xiàn),允許Java程序通過SSH協(xié)議連接到遠程系統(tǒng)(如Linux),這篇文章主要介紹了SpringBoot使用JSch操作Linux,需要的朋友可以參考下
    2023-11-11
  • Java詳細(xì)講解文件的讀寫操作方法

    Java詳細(xì)講解文件的讀寫操作方法

    文件讀寫主要依靠io流完成,流(Stream)是指一連串的數(shù)據(jù)(字符或字節(jié)),是以先進先出的方式發(fā)送信息的通道,數(shù)據(jù)源發(fā)送的數(shù)據(jù)經(jīng)過這個通道到達目的地,按流向區(qū)分為輸入流和輸出流
    2022-04-04
  • Spring?Cloud?Ribbon?負(fù)載均衡使用策略示例詳解

    Spring?Cloud?Ribbon?負(fù)載均衡使用策略示例詳解

    Spring?Cloud?Ribbon?是基于Netflix?Ribbon?實現(xiàn)的一套客戶端負(fù)載均衡工具,Ribbon客戶端組件提供了一系列的完善的配置,如超時,重試等,這篇文章主要介紹了Spring?Cloud?Ribbon?負(fù)載均衡使用策略示例詳解,需要的朋友可以參考下
    2023-03-03
  • Java函數(shù)式編程之通過行為參數(shù)化傳遞代碼

    Java函數(shù)式編程之通過行為參數(shù)化傳遞代碼

    行為參數(shù)化就是可以幫助你處理頻繁變更的需求的一種軟件開發(fā)模式,這篇文章將給大家詳細(xì)的介紹一下Java函數(shù)式編程之行為參數(shù)化傳遞代碼,感興趣的同學(xué)可以參考閱讀下
    2023-08-08
  • IDEA高效查看源碼的快捷鍵及小技巧

    IDEA高效查看源碼的快捷鍵及小技巧

    本篇文章這一部分的內(nèi)容主要為大家介紹了一些平時看源碼的時候常用的快捷鍵/小技巧!非常好用!掌握這些快捷鍵/小技巧,看源碼的效率提升一個等級
    2022-01-01
  • Java如何實現(xiàn)數(shù)據(jù)壓縮所有方式性能測試

    Java如何實現(xiàn)數(shù)據(jù)壓縮所有方式性能測試

    本文介紹了多種壓縮算法及其在Java中的實現(xiàn),包括LZ4、BZip2、Deflate、Gzip和7z等,LZ4以其高效的壓縮和解壓縮速度而受到青睞,特別是在大數(shù)據(jù)處理場景中,通過對比不同壓縮算法的性能和壓縮率,我們選擇了最適合當(dāng)前項目需求的壓縮工具
    2025-02-02

最新評論

饶阳县| 文化| 瓮安县| 阿克| 新津县| 贵南县| 三河市| 收藏| 伊吾县| 桓台县| 会昌县| 姜堰市| 秀山| 霍山县| 镇雄县| 延吉市| 涟水县| 台北市| 吉林市| 桐乡市| 赣州市| 武宁县| 淮阳县| 永济市| 潞城市| 黑河市| 芦溪县| 江西省| 华亭县| 余庆县| 察隅县| 康保县| 渭源县| 德昌县| 扶绥县| 和静县| 什邡市| 临洮县| 徐州市| 汶川县| 辛集市|