SpringBoot整合自動生成實體、服務、實現類配置


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;

}

 




 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM