1.配置自動生成器:
package com.qhse.logic.generator; 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; import org.junit.Test; /** * V1.0 */ public class GeneratorServiceEntity { // 模塊包名 private String packageModelName = ""; // 去掉表前綴 private String tablePrefix = "WWP_"; // 是否使用lombok private boolean lombokModel = false; @Test public void generateCode() { String packageName = "com.qhse.logic"; boolean serviceNameStartWithI = false; // user -> UserService, 設置成true: user -> IUserService // 設置實體包名 packageModelName = ".trafficManage.vehicleManage"; // 設置表名稱前綴 tablePrefix = "WWP_TRAFFIC_"; // 設置使用是否使用lombok lombokModel = true; generateByTables(serviceNameStartWithI, packageName, "WWP_TRAFFIC_VEHICLE_SHIFT"); } private void generateByTables( boolean serviceNameStartWithI, String packageName, String... tableNames) { GlobalConfig config = new GlobalConfig(); String dbUrl = "jdbc:oracle:thin:@192.168.0.186:1521:ORCL10G"; DataSourceConfig dataSourceConfig = new DataSourceConfig(); dataSourceConfig .setDbType(DbType.ORACLE) .setUrl(dbUrl) .setUsername("cloud") .setPassword("cloud") .setDriverName("oracle.jdbc.driver.OracleDriver"); StrategyConfig strategyConfig = new StrategyConfig(); // 實體類自動繼承Entity,不需要也可以 if (lombokModel) { strategyConfig .setSuperEntityClass(packageName + ".entity.BaseEntity") .setSuperEntityColumns( new String[]{ "STATUS", "UPDATE_TIME", "CREATE_TIME" }); } strategyConfig.setCapitalMode(true) .setEntityLombokModel(lombokModel) // .setDbColumnUnderline(true) .setTablePrefix(tablePrefix) // 去掉前綴 .setNaming(NamingStrategy.underline_to_camel) .setInclude(tableNames); // 修改替換成你需要的表名,多個表名傳數組 config .setActiveRecord(false) // 設置作者 .setAuthor("user-007") .setOutputDir("src\\main\\java") .setFileOverride(true); if (!serviceNameStartWithI) { config.setServiceName("%sService"); } new AutoGenerator() .setGlobalConfig(config) .setDataSource(dataSourceConfig) .setStrategy(strategyConfig) .setPackageInfo( new PackageConfig() // 設置父級包名 .setParent(packageName) // 設置controller層的包名 .setController("controller" + packageModelName) // 設置service層的包名 .setService("service" + packageModelName) // 設置impl層的包名 .setServiceImpl("service.impl" + packageModelName) // 設置entity層的包名 .setEntity("entity" + packageModelName)) .execute(); } private void generateByTables(String packageName, String... tableNames) { generateByTables(true, packageName, tableNames); } }
2.配置Lombok,簡化實體代碼塊
/** * <p> * 車班管理 * </p>*/ @Data // 改注解等同於屬性名稱的get、set方法 @EqualsAndHashCode(callSuper = true) // 通過注解可以比較實體是否相等 @Accessors(chain = true) // 設置值時,有返回值。可連續調用set方法 @TableName("T_VEHICLE") public class VehicleShift extends BaseEntity { private static final long serialVersionUID = 1L; /** * 主鍵ID */ private String idVehicle; /** * 車稱 */ private String vehicleName; /** * 備注 */ private String remark; }