
👨🏻🎓部落客介紹:大家好,我是芝士味的椒鹽,一名在校大學生,熱愛分享知識,很高興在這裡認識大家🌟
🌈擅長領域:Java、大資料、運維、電子
🙏🏻如果本文章各位小夥伴們有幫助的話,🍭關注+👍🏻點贊+🗣評論+📦收藏,相應的有空了我也會回訪,互助!!!
🤝另本人水準有限,旨在創作簡單易懂的文章,在文章描述時如有錯,懇請各位大佬指正,在此感謝!!!
@[TOC]
自動代碼生成器
- AutoGenerator 是 MyBatis-Plus 的代碼生成器,通過 AutoGenerator 可以快速生成 Entity、Mapper、Mapper XML、Service、Controller 等各個子產品的代碼,極大的提升了開發效率。
- 由于代碼生成器MyBatis-Plus 從 3.0.3 之後移除了代碼生成器與模闆引擎的預設依賴,需要手動添加相關依賴:
maven依賴
代碼生成器依賴pom.xml:
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-generator</artifactId>
<version>3.4.2</version>
</dependency>
- 添加 模闆引擎 依賴,MyBatis-Plus 支援 Velocity(預設)、Freemarker、Beetl,使用者可以選擇自己熟悉的模闆引擎,如果都不滿足您的要求,可以采用自定義模闆引擎。
<dependency>
<groupId>org.freemarker</groupId>
<artifactId>freemarker</artifactId>
<version>2.3.30</version>
</dependency>
MySQL代碼生成器
- MySQL代碼生成器
/**
* @author starrysky
* @title: MybatisPlusAutomaticGenerator
* @projectName mybaits_plus_final
* @description: mybatis-pluas代碼自動生成器
* @date 2021/2/109:59
*/
public class MybatisPlusAutomaticGenerator {
public static void main(String[] args) {
/**
* 代碼生成器對象
*/
AutoGenerator autoGenerator = new AutoGenerator();
/**
* 全局配置對象
*/
GlobalConfig globalConfig = new GlobalConfig();
String property = System.getProperty("user.dir");// 擷取目前項目的系統目錄
globalConfig.setOutputDir(property+"/src/main/java");
globalConfig.setAuthor("starrysky");
globalConfig.setOpen(false);//生成之後是否打開所在的系統目錄
globalConfig.setFileOverride(false);//是否覆寫
globalConfig.setServiceName("%sService");//去掉Service的I字首
globalConfig.setIdType(IdType.ASSIGN_ID);
globalConfig.setDateType(DateType.ONLY_DATE);//日期類型,僅僅是時間
globalConfig.setSwagger2(true);//配置swagger文檔
autoGenerator.setGlobalConfig(globalConfig);
/**
* 設定資料源
*/
DataSourceConfig dataSourceConfig = new DataSourceConfig();
dataSourceConfig.setUsername("root");
dataSourceConfig.setPassword("passwd");
dataSourceConfig.setUrl("jdbc:p6spy:mariadb://127.0.0.1:3306/mybatis_plus?useSSL=false&useUnicode=true&characterEncoding=utf-8&passwordCharacterEncoding=utf-8&serverTimezone=Asia/Shanghai");
dataSourceConfig.setDriverName("com.p6spy.engine.spy.P6SpyDriver");
dataSourceConfig.setDbType(DbType.MARIADB);
autoGenerator.setDataSource(dataSourceConfig);
/**
* 包的配置
*/
PackageConfig packageConfig = new PackageConfig();
packageConfig.setParent("icu.lookyousmileface");
packageConfig.setModuleName("MyPro");
packageConfig.setEntity("entity");
packageConfig.setMapper("mapper");
packageConfig.setService("service");
packageConfig.setController("controller");
autoGenerator.setPackageInfo(packageConfig);
/**
* 配置政策
*/
StrategyConfig strategyConfig = new StrategyConfig();
strategyConfig.setInclude("user");
strategyConfig.setNaming(NamingStrategy.underline_to_camel);//包的名字,下劃線轉駝峰
strategyConfig.setColumnNaming(NamingStrategy.underline_to_camel);//列的名字,下劃線轉駝峰
strategyConfig.setEntityLombokModel(true);//自動lombok
strategyConfig.setLogicDeleteFieldName("deleted");
TableFill craete_time = new TableFill("craete_time", FieldFill.INSERT);//自動填充配置插入
TableFill update_time = new TableFill("update_time", FieldFill.INSERT_UPDATE);//自動填充配置更新
List<TableFill> tableFils = new CopyOnWriteArrayList<>();
tableFils.add(craete_time);
tableFils.add(update_time);
strategyConfig.setTableFillList(tableFils);
strategyConfig.setVersionFieldName("version");//樂觀鎖
strategyConfig.setRestControllerStyle(true);//開啟Restf的風格,駝峰命名
strategyConfig.setControllerMappingHyphenStyle(true);//localhost:8080/hello_id_2
autoGenerator.setStrategy(strategyConfig);
/**
* 設定模版引擎
*/
autoGenerator.setTemplateEngine(new FreemarkerTemplateEngine());
/**
* 執行
*/
autoGenerator.execute();
}
}
Sqlite代碼生成器
- Sqlite代碼生成器
package icu.look.smile.uilts;
import com.baomidou.mybatisplus.annotation.DbType;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.IdType;
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.po.TableFill;
import com.baomidou.mybatisplus.generator.config.rules.DateType;
import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
import com.baomidou.mybatisplus.generator.engine.FreemarkerTemplateEngine;
import java.util.List;
import java.util.concurrent.CopyOnWriteArrayList;
/**
* @author starrysky
* @title: MybatisPlusAutomaticGenerator
* @projectName mybaits_plus_final
* @description: mybatis-pluas代碼自動生成器
* @date 2021/2/109:59
*/
public class MybatisPlusAutomaticGenerator {
public static void main(String[] args) {
/**
* 代碼生成器對象
*/
AutoGenerator autoGenerator = new AutoGenerator();
/**
* 全局配置對象
*/
GlobalConfig globalConfig = new GlobalConfig();
String property = System.getProperty("user.dir");// 擷取目前項目的系統目錄
globalConfig.setOutputDir(property+"/src/main/java");
globalConfig.setAuthor("starrysky");
globalConfig.setOpen(false);//生成之後是否打開所在的系統目錄
globalConfig.setFileOverride(false);//是否覆寫
globalConfig.setServiceName("%sService");//去掉Service的I字首
globalConfig.setIdType(IdType.AUTO);
globalConfig.setDateType(DateType.ONLY_DATE);//日期類型,僅僅是時間
globalConfig.setSwagger2(true);//配置swagger文檔
autoGenerator.setGlobalConfig(globalConfig);
/**
* 設定資料源
*/
DataSourceConfig dataSourceConfig = new DataSourceConfig();
dataSourceConfig.setUrl("jdbc:sqlite:db/main.db");
dataSourceConfig.setDriverName("org.sqlite.JDBC");
dataSourceConfig.setDbType(DbType.SQLITE);
autoGenerator.setDataSource(dataSourceConfig);
/**
* 包的配置
*/
PackageConfig packageConfig = new PackageConfig();
packageConfig.setParent("icu.smile.autogen");
packageConfig.setModuleName("MyPro");
packageConfig.setEntity("entity");
packageConfig.setMapper("mapper");
packageConfig.setService("service");
packageConfig.setController("controller");
autoGenerator.setPackageInfo(packageConfig);
/**
* 配置政策
*/
StrategyConfig strategyConfig = new StrategyConfig();
strategyConfig.setInclude("user_info");
strategyConfig.setNaming(NamingStrategy.underline_to_camel);//包的名字,下劃線轉駝峰
strategyConfig.setColumnNaming(NamingStrategy.underline_to_camel);//列的名字,下劃線轉駝峰
strategyConfig.setEntityLombokModel(true);//自動lombok
strategyConfig.setLogicDeleteFieldName("deleted");
TableFill craete_time = new TableFill("craete_time", FieldFill.INSERT);//自動填充配置插入
TableFill update_time = new TableFill("update_time", FieldFill.INSERT_UPDATE);//自動填充配置更新
List<TableFill> tableFils = new CopyOnWriteArrayList<>();
tableFils.add(craete_time);
tableFils.add(update_time);
strategyConfig.setTableFillList(tableFils);
strategyConfig.setVersionFieldName("version");//樂觀鎖
strategyConfig.setRestControllerStyle(true);//開啟Restf的風格,駝峰命名
strategyConfig.setControllerMappingHyphenStyle(true);//localhost:8080/hello_id_2
autoGenerator.setStrategy(strategyConfig);
/**
* 設定模版引擎
*/
autoGenerator.setTemplateEngine(new FreemarkerTemplateEngine());
/**
* 執行
*/
autoGenerator.execute();
}
}