1. 程式人生 > 其它 >Mybatisplus的程式碼生成器

Mybatisplus的程式碼生成器

加上“//自己修改”的是需要根據自己的實際情況進行修改,其他的基本不用動

package com.wes;

/**
 * *                    *.....███ 。*。*。*。*。*。*。*
 * *                    補.◢◣__\.*。*。*。*。*。*。*
 * *                    充.██ ○○∣*。*給你喝唷。*。*。*
 * *                    體.██ Milk∣。*讓你每天都很有活力喔。
 * *                    力.██_____∣*希望每次看到你。精神都很好唷~~ *
 
*/ import com.baomidou.mybatisplus.annotation.DbType; import com.baomidou.mybatisplus.annotation.FieldFill; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.core.exceptions.MybatisPlusException; 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 org.apache.commons.lang3.StringUtils; import java.util.ArrayList; import java.util.Scanner; /** * @Author LengXiaoStudio * @ClassName generator * @date 2020.11.06 16:08 */ public class CodeGenerator { /** * 讀取控制檯內容 */ public static String scanner(String tip) { Scanner scanner = new Scanner(System.in); StringBuilder help = new StringBuilder(); help.append("請輸入" + tip + ":"); System.out.println(help.toString()); if (scanner.hasNext()) { String ipt = scanner.next(); if (StringUtils.isNotEmpty(ipt)) { return ipt; } } throw new MybatisPlusException("請輸入正確的" + tip + "!"); } public static void main(String[] args) { // 程式碼生成器 AutoGenerator mpg = new AutoGenerator(); //1.全域性配置 GlobalConfig gc = new GlobalConfig(); String projectPath = System.getProperty("user.dir"); //獲取當前專案路徑 gc.setOutputDir(projectPath + "/src/main/java"); gc.setAuthor("wes"); //設定作者 //自己修改********** gc.setOpen(false); //生成後是否開啟資源管理器 gc.setFileOverride(true); //重新生成檔案的時候是否會覆蓋 gc.setIdType(IdType.AUTO); //設定id的策略 gc.setServiceName("%sService"); //介面 比如 IUserService 去掉 I gc.setDateType(DateType.ONLY_DATE); //設定日期型別 gc.setSwagger2(true); //實體屬性 Swagger2 註解 gc.setBaseResultMap(true); gc.setBaseColumnList(true); mpg.setGlobalConfig(gc); //2. 資料來源配置 DataSourceConfig dsc = new DataSourceConfig(); dsc.setUrl("jdbc:mysql:///mybatisplus?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=UTC"); //自己修改********** dsc.setDriverName("com.mysql.cj.jdbc.Driver"); dsc.setUsername("root");//自己修改********** dsc.setPassword("111"); //自己修改********** dsc.setDbType(DbType.MYSQL); //設定資料庫型別 mpg.setDataSource(dsc); // 3.包配置 PackageConfig pc = new PackageConfig(); pc.setModuleName(scanner("模組名")); pc.setParent("com.wes");//自己修改********** pc.setController("controller"); pc.setEntity("entity"); pc.setMapper("mapper"); pc.setService("service"); mpg.setPackageInfo(pc); // 4.策略配置 StrategyConfig strategy = new StrategyConfig(); strategy.setInclude(scanner("表名,多個英文逗號分割").split(",")); //對映的表名 strategy.setNaming(NamingStrategy.underline_to_camel); //資料庫對映到實體類的策略。駝峰命名 strategy.setTablePrefix("t_"); //不生成表的字首 //自己修改********** strategy.setEntityLombokModel(true); //自動新增lombok註解 strategy.setRestControllerStyle(true); //邏輯欄位 strategy.setLogicDeleteFieldName("is_deleted");// 邏輯刪除欄位名 不生成is_ //自己修改********** strategy.setEntityBooleanColumnRemoveIsPrefix(true); // 邏輯刪除欄位 是否刪除 字首 比如上一行的 is_ //自動填充 生成時間&更新時間 TableFill gmtCreate = new TableFill("gmt_create", FieldFill.INSERT);//自己修改********** TableFill gmtModified = new TableFill("gmt_modified", FieldFill.INSERT_UPDATE); //自己修改********** ArrayList<TableFill> tableFills = new ArrayList<>(); tableFills.add(gmtCreate); tableFills.add(gmtModified); strategy.setTableFillList(tableFills); //樂觀鎖的列 strategy.setVersionFieldName("version"); //自己修改**********(一般不用) //RestFUL 風格 strategy.setRestControllerStyle(true); //url 駝峰命名 轉化為_ strategy.setControllerMappingHyphenStyle(true); mpg.setStrategy(strategy); //執行 mpg.execute(); } }