1. 程式人生 > 程式設計 >MybatisPlus使用程式碼生成器遇到的小問題(推薦)

MybatisPlus使用程式碼生成器遇到的小問題(推薦)

MybatisPlus 給我們提供了更加強大的程式碼生成器

MyBatisPlus 在3.0.3版本之前使用程式碼生成器因為存在預設依賴,所以不需要其他的依賴,專案中使用的是3.0.1的版本,所以不用新增其他依賴,新增之後反倒是會報錯,實際上MP官網上已經說明了這一點,只是自己沒注意才出現錯誤

3.0.3版本之後就需要新增如下依賴

<dependency>
 <groupId>com.baomidou</groupId>
 <artifactId>mybatis-plus-generator</artifactId>
 <version>3.2.0</version>
</dependency>
<dependency>
 <groupId>org.apache.velocity</groupId>
 <artifactId>velocity-engine-core</artifactId>
 <version>2.1</version>
</dependency>

MP預設將Velocity作為模板引擎,同時也支援FreemarkerBeetl 需要替換參看連結

這裡貼一個比較簡單的程式碼生成器程式碼

import com.baomidou.mybatisplus.annotation.DbType;
import com.baomidou.mybatisplus.generator.AutoGenerator;
import com.baomidou.mybatisplus.generator.config.DataSourceConfig;
import com.baomidou.mybatisplus.generator.config.GlobalConfig;
import com.baomidou.mybatisplus.generator.config.PackageConfig;
import com.baomidou.mybatisplus.generator.config.StrategyConfig;
import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;

public class CodeGeneration {

 /**
  *
  * @Title: main
  * @Description: 生成
  * @param args
  */
 public static void main(String[] args) {
  AutoGenerator mpg = new AutoGenerator();

  // 全域性配置
  GlobalConfig gc = new GlobalConfig();
  gc.setOutputDir("D:\\generation");//輸出檔案路徑
  gc.setFileOverride(true); // 是否檔案覆蓋
  gc.setActiveRecord(false);// 不需要ActiveRecord(實體類繼承Model)特性的請改為false
  gc.setEnableCache(false);// XML 二級快取
  gc.setBaseResultMap(true);// XML ResultMap
  gc.setBaseColumnList(true);// XML ColumnList
  gc.setAuthor("lizhan");// 作者

  // 自定義檔案命名,注意 %s 會自動填充表實體屬性!
  gc.setControllerName("%sController");
  // 預設service介面名IXXXService 自定義指定之後就不會用I開頭了
  gc.setServiceName("%sService");
  gc.setServiceImplName("%sServiceImpl");
  gc.setMapperName("%sMapper");
  gc.setXmlName("%sMapper");
  mpg.setGlobalConfig(gc);

  // 資料來源配置
  DataSourceConfig dsc = new DataSourceConfig();
  dsc.setDbType(DbType.MYSQL);
  dsc.setDriverName("com.mysql.cj.jdbc.Driver");
  dsc.setUsername("xxx");
  dsc.setPassword("xxx");
  dsc.setUrl("jdbc:mysql://localhost:3306/xxx");
  mpg.setDataSource(dsc);

  // 策略配置
  StrategyConfig strategy = new StrategyConfig();
  // strategy.setTablePrefix(new String[] { "sys_" });// 此處可以修改為您的表字首
  strategy.setNaming(NamingStrategy.underline_to_camel);// 表名生成策略(下劃線轉駝峰)
  strategy.setInclude("user"); // 需要生成的表名

  strategy.setSuperServiceClass(null);
  strategy.setSuperServiceImplClass(null);
  strategy.setSuperMapperClass(null);

  mpg.setStrategy(strategy);

  // 包配置
  PackageConfig pc = new PackageConfig();
  pc.setParent("com.xxx");
  pc.setController("controller");
  pc.setService("service");
  pc.setServiceImpl("impl");
  pc.setMapper("mapper");
  pc.setEntity("entity");
  pc.setXml("xml");
  mpg.setPackageInfo(pc);

  // 執行生成
  mpg.execute();

 }

}

PS:下面看下MybatisPlus自動生成程式碼

POM依賴

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

樣板程式碼

//01配置連結資料來源
 public static DataSourceConfig dataSource() {
  DataSourceConfig dataSourceConfig = new DataSourceConfig();
  dataSourceConfig.setDbType(DbType.MYSQL);
  /**************這裡請填寫你的ip和你的埠號及資料庫名稱**************/
  dataSourceConfig.setUrl("jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=UTF-8");
  /**************您的賬號**************/
  dataSourceConfig.setUsername("root");
  /**************您的密碼**************/
  dataSourceConfig.setPassword("root");
  //您的資料庫引擎
  dataSourceConfig.setDriverName("com.mysql.cj.jdbc.Driver");
  return dataSourceConfig;
 }

 //02配置全域性
 public static GlobalConfig globalConfig() {
  GlobalConfig globalConfig = new GlobalConfig();
  /**************路徑**************/
  globalConfig.setOutputDir("X:\\xxx\\" + "/src/main/java");
  //不會預設開啟資料夾
  globalConfig.setOpen(false);
  //建立者
  globalConfig.setAuthor("xxx");
  //建立serviceImpl不會有大寫的I
  globalConfig.setServiceName("%sService");
  return globalConfig;
 }

 //03配置包資訊
 public static PackageConfig packageConfig() {
  PackageConfig packageConfig = new PackageConfig();
  /**************父級包名**************/
  packageConfig.setParent("com.xxxxx");
  //父級包名稱
  packageConfig.setModuleName("generator");
  packageConfig.setController("controller");
  packageConfig.setService("service");
  packageConfig.setServiceImpl("service.impl");
  packageConfig.setMapper("mapper");
  packageConfig.setEntity("entity");
  return packageConfig;
 }

 //04配置策略
 public static StrategyConfig strategyConfig(){
  StrategyConfig strategyConfig = new StrategyConfig();
  //新增lombok
  strategyConfig.setEntityLombokModel(true);
  //下劃線轉駝峰
  strategyConfig.setNaming(NamingStrategy.underline_to_camel);
  //同上
  strategyConfig.setColumnNaming(NamingStrategy.underline_to_camel);
  /**************要生成的表名**************/
  strategyConfig.setInclude("xxx");
  return strategyConfig;
 }

 public static void main(String[] args) {
  //建立generator物件
  AutoGenerator autoGenerator = new AutoGenerator();
  //連結配置
  autoGenerator.setDataSource(dataSource());
  //全域性配置
  autoGenerator.setGlobalConfig(globalConfig());
  //包資訊
  autoGenerator.setPackageInfo(packageConfig());
  //配置策略
  autoGenerator.setStrategy(strategyConfig());
  //去吧皮卡丘
  autoGenerator.execute();
 }

總結

到此這篇關於MybatisPlus使用程式碼生成器遇到的小問題(推薦)的文章就介紹到這了,更多相關MybatisPlus程式碼生成器內容請搜尋我們以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援我們!