生成说明
代码只生成了基础性的代码,数据库为: Oracle11G , 文章,记录一下。
生成代码
<dependency>
<groupId>com. Oracle </groupId>
<artifactId>ojdbc6</artifactId>
<version>11.2.0.3</version>
</dependency>
<!-- lombok -->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
<!-- MyBatis -plusd代码生成器-->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-generator</artifactId>
<version>3.4.1</version>
</dependency>
<!--模板引擎-->
<dependency>
<groupId>org. apache .velocity</groupId>
<artifactId>velocity-engine-core</artifactId>
<version>2.2</version>
</dependency>
<!-- freemarker -->
<dependency>
<groupId>org.freemarker</groupId>
<artifactId>freemarker</artifactId>
<version>2.3.30</version>
</dependency>
<!-- beetl-->
<dependency>
<groupId>com.ibeetl</groupId>
<artifactId>beetl</artifactId>
<version>3.3.0.RELEASE</version>
</dependency>
import com.baomidou.mybatisplus.annotation.DbType;
import com.baomidou.mybatisplus.annotation.IdType;
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.converts.OracleTypeConvert;
import com.baomidou.mybatisplus.generator.config.rules.DateType;
import com.baomidou.mybatisplus.generator.config.rules.DbColumnType;
import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
import com.baomidou.mybatisplus.generator.engine.FreemarkerTemplateEngine;
public class MyBatisPlusGenerator {
public static void main(String[] args) {
String projectPath = "D:\\MyData\\MinFang\\20211112\\distribution-platform\\distribution-manager";
// 1、代码生成器
AutoGenerator autoGenerator = new AutoGenerator();
// 2、全局配置
autoGenerator.setGlobalConfig(getGlobalConfig(projectPath));
// 3、数据源配置
autoGenerator.set dataSource (getDataSourceConfig());
// 4、包配置
// customer、goods、instock、outstock、stock
String smallModule = "stock";
PackageConfig packageConfig = new PackageConfig()
// 父包模块名
.setParent("com.platform.distribution")
.setModuleName("")
.setEntity("model.medicine." + smallModule)
.setController("controller.medicine." + smallModule)
.setService("service.medicine." + smallModule)
.setServiceImpl("service.medicine." + smallModule + ".impl")
.setMapper("mapper.medicine." + smallModule)
.set Xml ("mapper.medicine." + smallModule);
// 路径配置信息
// .setPathInfo()
autoGenerator.setPackageInfo(packageConfig);
// 5、策略配置
StrategyConfig strategy = new StrategyConfig()
//url中驼峰转连字符
.setControllerMappingHyphenStyle(true)
//数据库表映射到实体的命名策略
.setColumnNaming(NamingStrategy.underline_to_camel)
.setNaming(NamingStrategy.underline_to_camel)
.setEntityLombokModel(true)
// Rest ful api风格控制器
.setRestControllerStyle(true)
//生成实体时去掉表前缀
.setTablePrefix("DP_");
//公共父类 , 你自己的父类控制器,没有就不用设置!
// .setSuperControllerClass()
//自定义继承的Entity类全称,带包名
// .setSuperEntityClass()
//写于父类中的公共字段
// .setSuperEntityColumns()
strategy.setInclude(
//"DP_CUSTOMER",
//"DP_ADDRESS"
//"DP_GOODS"
//"DP_INSTOCKORDER_D",
//"DP_INSTOCKORDER_M",
//"DP_INSTOCK_FEEDBACK"
//"DP_OUTSTOCKORDER_D",
//"DP_OUTSTOCKORDER_M",
//"DP_OUTSTOCK_FEEDBACK"
"DP_STOCKMODIFY_FEEDBACK"
);
// 公共父类
//strategy.setSuperControllerClass("com.baomidou.ant.core.BaseController");
// 实体类主键名称设置 // 在代码生成器主类上配置模板引擎
strategy.setSuperEntityColumns("ID");
autoGenerator.setStrategy(strategy);
// 6、添加模板引擎
autoGenerator.setTemplateEngine(new FreemarkerTemplateEngine());
// 7、执行生成
autoGenerator.execute();
}
/**
* 数据源配置
*
* @return
*/ public static DataSource Config getDataSourceConfig() {
String url = " jdbc :oracle:thin:@ 127.0.0.1 :1521:orcl";
String driverName = "oracle.jdbc.driver.OracleDriver";
String username = "test";
String password = "test1234";
DataSourceConfig dataSourceConfig = new DataSourceConfig()
// 数据库信息查询类
// .setDbQuery()
// .setTypeConvert()
.setDbType(DbType.ORACLE)
.setDriverName(driverName)
.setUrl(url)
.setUsername(username)
.setPassword(password);
// 数据库 schema name(例如 PostgreSQL 可指定为 public)
// dataSourceConfig.setSchemaName("public");
dataSourceConfig.setTypeConvert(new OracleTypeConvert() {
});
return dataSourceConfig;
}
/**
* 全局配置
*
* @param projectPath
* @return
*/ public static GlobalConfig getGlobalConfig(String projectPath) {
GlobalConfig globalConfig = new GlobalConfig();
globalConfig.setAuthor("");
//定义生成的实体类中日期类型
globalConfig.setDateType(DateType.ONLY_DATE);
//重新生成时文件是否覆盖
globalConfig.set File Override(false);
//主键策略
globalConfig.setIdType(IdType.AUTO);
// 是否打开输出目录(默认值:null)
globalConfig.setOpen(false);
//输出路径
globalConfig.setOutputDir(projectPath + "/src/main/java");
globalConfig.setControllerName("Medicine%sController");
globalConfig.setEntityName("Medicine%s");
globalConfig.setServiceName("IMedicine%sService");
globalConfig.setServiceImplName("Medicine%sServiceImpl");
globalConfig.setMapperName("Medicine%sMapper");
globalConfig.setXmlName("Medicine%sMapper");
//开启Swagger2模式
// globalConfig.setSwagger2(true) ;
globalConfig.setActiveRecord(false);
// 是否覆盖已有文件(默认值:false)
// globalConfig.setFileOverride(true);
// XML ResultMap
globalConfig.setBaseResultMap(true);
// XML columList
globalConfig.setBaseColumnList(true);
// XML 二级缓存
globalConfig.setEnableCache(true);
return globalConfig;
}
}