首页 > 编程语言 > 详细

SpringBoot整合自动生成实体、服务、实现类配置

时间:2019-09-24 13:31:12      阅读:88      评论:0      收藏:0      [点我收藏+]

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;

}

 




 

SpringBoot整合自动生成实体、服务、实现类配置

原文:https://www.cnblogs.com/blogslee/p/11577128.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!