亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

MyBatis Plus中代碼生成器使用詳解

 更新時間:2020年08月26日 10:16:41   作者:wshanshi  
這篇文章主要介紹了MyBatis Plus中代碼生成器使用詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧

按照官網(wǎng)上實例嘗試了一下,感覺MyBatis plus中代碼生成器還是很強大的,以下是測試的總結(jié):

使用MybatisPlus的主要依賴

引入plus依賴(苞米豆)

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

生成器依賴

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

模板依賴

<dependency>
  <groupId>org.freemarker</groupId>
  <artifactId>freemarker</artifactId>
  <version>2.3.28</version>
 </dependency>

測試的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>
 <parent>
 <groupId>org.springframework.boot</groupId>
 <artifactId>spring-boot-starter-parent</artifactId>
 <version>2.1.5.RELEASE</version>
 <relativePath/> <!-- lookup parent from repository -->
 </parent>
 <groupId>com.wy</groupId>
 <artifactId>testpuls</artifactId>
 <version>0.0.1-SNAPSHOT</version>
 <name>testpuls</name>
 <description>Demo project for Spring Boot</description>

 <properties>
 <java.version>1.8</java.version>
 </properties>

 <dependencies>
 <dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-web</artifactId>
 </dependency>

 <dependency>
  <groupId>mysql</groupId>
  <artifactId>mysql-connector-java</artifactId>
  <scope>runtime</scope>
 </dependency>
 <dependency>
  <groupId>org.projectlombok</groupId>
  <artifactId>lombok</artifactId>
  <optional>true</optional>
 </dependency>
 <dependency>
  <groupId>com.baomidou</groupId>
  <artifactId>mybatis-plus-boot-starter</artifactId>
  <version>3.1.1</version>
 </dependency>
 <dependency>
  <groupId>com.baomidou</groupId>
  <artifactId>mybatis-plus-generator</artifactId>
  <version>3.1.1</version>
 </dependency>
 <dependency>
  <groupId>org.freemarker</groupId>
  <artifactId>freemarker</artifactId>
  <version>2.3.28</version>
 </dependency>
 <dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-test</artifactId>
  <scope>test</scope>
 </dependency>
 <dependency>
  <groupId>junit</groupId>
  <artifactId>junit</artifactId>
  <version>4.12</version>
  <scope>test</scope>
 </dependency>
 <dependency>
  <groupId>org.springframework</groupId>
  <artifactId>spring-test</artifactId>
  <version>5.1.7.RELEASE</version>
  <scope>compile</scope>
 </dependency>
 <dependency>
  <groupId>junit</groupId>
  <artifactId>junit</artifactId>
 </dependency>
 <dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-test</artifactId>
 </dependency>
 <dependency>
  <groupId>com.capgemini.mrchecker</groupId>
  <artifactId>mrchecker-core-module</artifactId>
  <version>4.12.1.1</version>
 </dependency>
 <dependency>
  <groupId>org.springframework.cloud</groupId>
  <artifactId>spring-cloud-spring-service-connector</artifactId>
  <version>2.0.4.RELEASE</version>
 </dependency>
 <dependency>
  <groupId>com.capgemini.mrchecker</groupId>
  <artifactId>mrchecker-core-module</artifactId>
  <version>4.12.1.1</version>
 </dependency>
 </dependencies>

 <build>
 <plugins>
  <plugin>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-maven-plugin</artifactId>
  </plugin>
 </plugins>
 </build>

</project>

代碼生成器類

package com.wy.testpuls.util;

import com.baomidou.mybatisplus.core.exceptions.MybatisPlusException;
import com.baomidou.mybatisplus.core.toolkit.StringPool;
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
import com.baomidou.mybatisplus.generator.AutoGenerator;
import com.baomidou.mybatisplus.generator.InjectionConfig;
import com.baomidou.mybatisplus.generator.config.*;
import com.baomidou.mybatisplus.generator.config.po.TableInfo;
import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
import com.baomidou.mybatisplus.generator.engine.FreemarkerTemplateEngine;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

public class MyGenerator {
  public static String scanner(String someThing) {
    Scanner scanner = new Scanner(System.in);
    StringBuilder help = new StringBuilder();
    help.append("請輸入" + someThing + ":");
    System.out.println(help.toString());
    if (scanner.hasNext()) {
      String sc = scanner.next();
      if (StringUtils.isNotEmpty(sc)) {
        return sc;
      }
    }
    throw new MybatisPlusException("請輸入正確的" + someThing + "!");
  }

  public static void main(String[] args) {
    // 代碼生成器
    AutoGenerator mpg = new AutoGenerator();

    // 全局配置
    GlobalConfig gc = new GlobalConfig();
    String projectPath = System.getProperty("user.dir");
    gc.setOutputDir(projectPath + "/src/main/java");
    gc.setAuthor("山石");
    gc.setOpen(false);
    mpg.setGlobalConfig(gc);

    // 數(shù)據(jù)源配置
    DataSourceConfig dsc = new DataSourceConfig();
    dsc.setUrl("jdbc:mysql://localhost:3306/test?useUnicode=true&useSSL=false&characterEncoding=utf8");
    dsc.setDriverName("com.mysql.jdbc.Driver");
    dsc.setUsername("root");
    dsc.setPassword("admin");
    mpg.setDataSource(dsc);

    // 包配置
    PackageConfig pc = new PackageConfig();
    pc.setModuleName(scanner("請輸入你的包名"));
    pc.setParent("com.wy");//你哪個父目錄下創(chuàng)建包
    mpg.setPackageInfo(pc);

    // 自定義配置
    InjectionConfig cfg = new InjectionConfig() {
      @Override
      public void initMap() {
        // to do nothing
      }
    };

    // 如果模板引擎是 freemarker
    String templatePath = "/templates/mapper.xml.ftl";
    // 如果模板引擎是 velocity
    // String templatePath = "/templates/mapper.xml.vm";

    // 自定義輸出配置
    List<FileOutConfig> focList = new ArrayList<>();
    // 自定義配置會被優(yōu)先輸出
    focList.add(new FileOutConfig(templatePath) {
      @Override
      public String outputFile(TableInfo tableInfo) {
        // 自定義輸出文件名 , 如果你 Entity 設(shè)置了前后綴、此處注意 xml 的名稱會跟著發(fā)生變化!!
        return projectPath + "/src/main/resources/mapper/" + pc.getModuleName()
            + "/" + tableInfo.getEntityName() + "Mapper" + StringPool.DOT_XML;
      }
    });
    cfg.setFileOutConfigList(focList);
    mpg.setCfg(cfg);

    // 配置模板
    TemplateConfig templateConfig = new TemplateConfig();

    // 配置自定義輸出模板
    //指定自定義模板路徑,注意不要帶上.ftl/.vm, 會根據(jù)使用的模板引擎自動識別
    // templateConfig.setEntity("templates/entity2.java");
    // templateConfig.setService();
    // templateConfig.setController();

    templateConfig.setXml(null);
    mpg.setTemplate(templateConfig);

    // 策略配置,數(shù)據(jù)庫表配置
    StrategyConfig strategy = new StrategyConfig();
    //數(shù)據(jù)庫表映射到實體的命名策略
    strategy.setNaming(NamingStrategy.underline_to_camel);
    //數(shù)據(jù)庫表字段映射到實體類的命名策略
    strategy.setColumnNaming(NamingStrategy.underline_to_camel);
    //自定義繼承entity類,添加這一個會在生成實體類的時候繼承entity
    //strategy.setSuperEntityClass("com.wy.testCodeGenerator.entity");
    //實體是否為lombok模型
    strategy.setEntityLombokModel(true);
    //生成@RestController控制器
    strategy.setRestControllerStyle(true);
    //是否繼承controller
    // strategy.setSuperControllerClass("com.wy.testCodeGenerator.controller");
    strategy.setInclude(scanner("表名,多個英文逗號分割").split(","));
    strategy.setSuperEntityColumns("id");
    //駝峰轉(zhuǎn)連字符串
    strategy.setControllerMappingHyphenStyle(true);
    //表前綴
    strategy.setTablePrefix(pc.getModuleName() + "_");
    mpg.setStrategy(strategy);
    mpg.setTemplateEngine(new FreemarkerTemplateEngine());
    mpg.execute();
  }
}

注意:測試時輸入的表名必須和數(shù)據(jù)庫中一致,區(qū)分大小寫。

疑問:生成的實體類當中沒有id。求解

到此這篇關(guān)于MyBatis Plus中代碼生成器使用詳解的文章就介紹到這了,更多相關(guān)MyBatis Plus代碼生成器內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • SpringBoot最簡潔的國際化配置

    SpringBoot最簡潔的國際化配置

    這篇文章主要介紹了SpringBoot最簡潔的國際化配置,Spring Boot是一個用于構(gòu)建獨立的、生產(chǎn)級別的Spring應用程序的框架,國際化是一個重要的功能,它允許應用程序根據(jù)用戶的語言和地區(qū)顯示不同的內(nèi)容,在Spring Boot中,實現(xiàn)國際化非常簡單,需要的朋友可以參考下
    2023-10-10
  • Java協(xié)程編程之Loom項目實戰(zhàn)記錄

    Java協(xié)程編程之Loom項目實戰(zhàn)記錄

    這篇文章主要介紹了Java協(xié)程編程之Loom項目嘗鮮,如果用嘗鮮的角度去使用Loom項目,可以提前窺探JVM開發(fā)者們是如何基于協(xié)程這個重大特性進行開發(fā)的,這對于提高學習JDK內(nèi)核代碼的興趣有不少幫助,需要的朋友可以參考下
    2021-08-08
  • 關(guān)于java中自定義注解的使用

    關(guān)于java中自定義注解的使用

    這篇文章主要介紹了關(guān)于java中自定義注解的使用,注解像一種修飾符一樣,應用于包、類型、構(gòu)造方法、方法、成員變量、參數(shù)及本地變量的聲明語句中,需要的朋友可以參考下
    2023-07-07
  • Java 方法引用與ambda表達式的聯(lián)系

    Java 方法引用與ambda表達式的聯(lián)系

    這篇文章主要介紹了Java 方法引用與ambda表達式的聯(lián)系,方法引用通過方法的名字來指向一個方法, 方法引用同樣是Java 8 引入的新特性,而且和Lambda表達式有著不小的聯(lián)系,它同樣可以根據(jù)上下文進行推導,進而可以簡化代碼
    2022-06-06
  • 使用Feign調(diào)用注解組件(實現(xiàn)字段賦值功能)

    使用Feign調(diào)用注解組件(實現(xiàn)字段賦值功能)

    這篇文章主要介紹了使用Feign調(diào)用注解組件(實現(xiàn)字段賦值功能),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-03-03
  • 詳解Java刪除Map中元素java.util.ConcurrentModificationException”異常解決

    詳解Java刪除Map中元素java.util.ConcurrentModificationException”異常解決

    這篇文章主要介紹了詳解Java刪除Map中元素java.util.ConcurrentModificationException”異常解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-01-01
  • RocketMQTemplate 注入失敗的解決

    RocketMQTemplate 注入失敗的解決

    這篇文章主要介紹了RocketMQTemplate 注入失敗的解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-07-07
  • MyBatis?Plus實現(xiàn)中文排序的兩種有效方法

    MyBatis?Plus實現(xiàn)中文排序的兩種有效方法

    在MyBatis?Plus項目開發(fā)中,針對中文數(shù)據(jù)的排序需求是一個常見的挑戰(zhàn),尤其是在需要按照拼音或特定語言邏輯排序時,本文整合了兩種有效的方法,旨在幫助開發(fā)者克服MyBatis?Plus在處理中文排序時遇到的障礙,需要的朋友可以參考下
    2024-08-08
  • 詳解用Eclipse如何創(chuàng)建Web項目

    詳解用Eclipse如何創(chuàng)建Web項目

    本篇文章主要介紹了詳解用Eclipse如何創(chuàng)建Web項目,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-12-12
  • Spring基于注解整合Redis完整實例

    Spring基于注解整合Redis完整實例

    這篇文章主要介紹了Spring基于注解整合Redis完整實例,具有一定的參考價值,感興趣的小伙伴們可以參考一下。
    2017-04-04

最新評論