package com.ard.utils.other;
|
|
import com.baomidou.mybatisplus.annotation.IdType;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.dialects.Oracle12cDialect;
|
import com.baomidou.mybatisplus.generator.AutoGenerator;
|
import com.baomidou.mybatisplus.generator.config.*;
|
import com.baomidou.mybatisplus.generator.config.querys.OracleQuery;
|
import com.baomidou.mybatisplus.generator.config.querys.PostgreSqlQuery;
|
import com.baomidou.mybatisplus.generator.config.rules.DateType;
|
import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
|
import java.util.Collections;
|
|
/**
|
* @ClassName: CodeGeneration
|
* @Description: 代码生成器
|
* @Author: Administrator
|
* @Date: 2023年03月25日 14:49
|
* @Version: 1.0
|
**/
|
public class CodeGeneration {
|
public static void main(String[] args) {
|
/**
|
* 先配置数据源
|
*/
|
//PostgreSqlQuery postgreSqlQuery = new PostgreSqlQuery() {
|
// @Override
|
// public String[] fieldCustom() {
|
// return new String[]{"Default"};
|
// }
|
//};
|
|
OracleQuery oracleQuery = new OracleQuery() {
|
@Override
|
public String[] fieldCustom() {
|
return new String[]{"Default"};
|
}
|
};
|
DataSourceConfig dsc = new DataSourceConfig.Builder("jdbc:oracle:thin:@//112.98.126.2:21521/orcl","c##ard_user","123456")
|
.dbQuery(oracleQuery).build();
|
//通过datasourceConfig创建AutoGenerator
|
AutoGenerator generator = new AutoGenerator(dsc);
|
|
/**
|
* 全局配置
|
*/
|
String projectPath = System.getProperty("user.dir"); //获取项目路径
|
String filePath = projectPath + "/src/main/java"; //java下的文件路径
|
GlobalConfig global = new GlobalConfig.Builder()
|
.outputDir(filePath)//生成的输出路径
|
.author("刘苏义")//生成的作者名字
|
//.enableSwagger()开启swagger,需要添加swagger依赖并配置
|
.dateType(DateType.TIME_PACK)//时间策略
|
.commentDate("yyyy年MM月dd日")//格式化时间格式
|
.disableOpenDir()//禁止打开输出目录,默认false
|
.fileOverride()//覆盖生成文件
|
.build();
|
|
/**
|
* 包配置
|
*/
|
PackageConfig packages = new PackageConfig.Builder()
|
.entity("domian")//实体类包名
|
.parent("com.ard.alarm.bridge")//父包名。如果为空,将下面子包名必须写全部, 否则就只需写子包名
|
.controller("controller")//控制层包名
|
.mapper("mapper")//mapper层包名
|
.xml("mapper.xml")//数据访问层xml包名
|
.service("service")//service层包名
|
.serviceImpl("service.impl")//service实现类包名
|
.pathInfo(Collections.singletonMap(OutputFile.xml, projectPath + "/src/main/resources/mapper"))
|
.build();
|
|
/**
|
* 策略配置开始
|
*/
|
StrategyConfig strategyConfig = new StrategyConfig.Builder()
|
.enableCapitalMode()//开启全局大写命名
|
//.likeTable()模糊表匹配
|
.addInclude("DATABRIDGE")//添加表匹配,指定要生成的数据表名,不写默认选定数据库所有表
|
//.disableSqlFilter()禁用sql过滤:默认(不使用该方法)true
|
//.enableSchema()启用schema:默认false
|
|
.entityBuilder() //实体策略配置
|
//.disableSerialVersionUID()禁用生成SerialVersionUID:默认true
|
.enableChainModel()//开启链式模型
|
.enableLombok()//开启lombok
|
.enableRemoveIsPrefix()//开启 Boolean 类型字段移除 is 前缀
|
.enableTableFieldAnnotation()//开启生成实体时生成字段注解
|
//.addTableFills()添加表字段填充
|
.naming(NamingStrategy.underline_to_camel)//数据表映射实体命名策略:默认下划线转驼峰underline_to_camel
|
.columnNaming(NamingStrategy.underline_to_camel)//表字段映射实体属性命名规则:默认null,不指定按照naming执行
|
.idType(IdType.AUTO)//添加全局主键类型
|
.formatFileName("%s")//格式化实体名称,%s取消首字母I
|
.build()
|
|
.mapperBuilder()//mapper文件策略
|
.enableMapperAnnotation()//开启mapper注解
|
.enableBaseResultMap()//启用xml文件中的BaseResultMap 生成
|
.enableBaseColumnList()//启用xml文件中的BaseColumnList
|
//.cache(缓存类.class)设置缓存实现类
|
.formatMapperFileName("%sMapper")//格式化Dao类名称
|
.formatXmlFileName("%sMapper")//格式化xml文件名称
|
.build()
|
|
.serviceBuilder()//service文件策略
|
.formatServiceFileName("%sService")//格式化 service 接口文件名称
|
.formatServiceImplFileName("%sServiceImpl")//格式化 service 接口文件名称
|
.build()
|
|
.controllerBuilder()//控制层策略
|
//.enableHyphenStyle()开启驼峰转连字符,默认:false
|
.enableRestStyle()//开启生成@RestController
|
.formatFileName("%sController")//格式化文件名称
|
.build();
|
/*至此,策略配置才算基本完成!*/
|
|
/**
|
* 将所有配置项整合到AutoGenerator中进行执行
|
*/
|
generator.global(global)
|
.packageInfo(packages)
|
.strategy(strategyConfig)
|
.execute();
|
}
|
}
|