mybatis-plus-generator代碼生成器
代碼生成器所需依賴
<!-- 代碼生成器 --> <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-generator</artifactId> <version>3.5.0</version> </dependency> <!-- 模板引擎 --> <dependency> <groupId>org.apache.velocity</groupId> <artifactId>velocity-engine-core</artifactId> <version>2.3</version> </dependency>
新建一個工具類
public class CodeGenerator { public static void main(String[] args) { // 數據源配置 DataSourceConfig.Builder dataSourceConfigBuilder = new DataSourceConfig .Builder( "jdbc:mysql://localhost:3306/text", "root", "123456");//內部會自行判斷數據庫類型 // 全局配置 GlobalConfig.Builder globalConfigBuilder = new GlobalConfig.Builder(); // 代碼生成目錄 String projectPath = System.getProperty("user.dir"); globalConfigBuilder.outputDir(projectPath + "/src/main/java"); // 作者 globalConfigBuilder.author("xiaocheng"); // 結束時是否打開文件夾 globalConfigBuilder.openDir(false); // 是否覆蓋舊的文件 globalConfigBuilder.fileOverride(); // 實體屬性Swagger2注解 //globalConfigBuilder.enableSwagger(); // 包配置,如模塊名、實體、mapper、service、controller等 PackageConfig.Builder packageConfigBuilder = new PackageConfig.Builder(); //packageConfigBuilder.moduleName("xiaocheng"); packageConfigBuilder.parent("com.xiaocheng"); packageConfigBuilder.entity("entity"); packageConfigBuilder.mapper("mapper"); packageConfigBuilder.service("service"); //packageConfigBuilder.serviceImpl("serviceImpl"); packageConfigBuilder.controller("controller"); // 策略配置 StrategyConfig.Builder strategyConfigBuilder = new StrategyConfig.Builder(); // 設置需要映射的表名 strategyConfigBuilder.addInclude("text","text1");//字符串數組,可以生成多個表 // 下划線轉駝峰 strategyConfigBuilder.entityBuilder().naming(NamingStrategy.underline_to_camel); strategyConfigBuilder.entityBuilder().columnNaming(NamingStrategy.underline_to_camel); // 去除前綴"t_" //strategyConfigBuilder.addTablePrefix("t_"); // entity的Lombok strategyConfigBuilder.entityBuilder().enableLombok(); // 邏輯刪除 strategyConfigBuilder.entityBuilder().logicDeleteColumnName("deleted"); strategyConfigBuilder.entityBuilder().logicDeletePropertyName("deleted"); // 創建時間 IFill gmtCreate = new Column("create_time", FieldFill.INSERT); // 更新時間 IFill gmtModified = new Column("update_time", FieldFill.INSERT_UPDATE); strategyConfigBuilder.entityBuilder().addTableFills(gmtCreate, gmtModified); // 樂觀鎖 //strategyConfigBuilder.entityBuilder().enableSerialVersionUID(); //strategyConfigBuilder.entityBuilder().versionColumnName("version"); //strategyConfigBuilder.entityBuilder().versionPropertyName("version"); // 使用Restful風格的Controller strategyConfigBuilder.controllerBuilder().enableRestStyle(); // 將請求地址轉換為駝峰命名,如 http://localhost:8080/hello_id_2 strategyConfigBuilder.controllerBuilder().enableHyphenStyle(); // 創建代碼生成器對象,加載配置 AutoGenerator autoGenerator = new AutoGenerator(dataSourceConfigBuilder.build()); autoGenerator.global(globalConfigBuilder.build()); autoGenerator.packageInfo(packageConfigBuilder.build()); autoGenerator.strategy(strategyConfigBuilder.build()); // 執行 autoGenerator.execute(); } }
