本篇文章为你整理了MP 代码生成器工具类(magicalcoder的代码生成器)的详细内容,包含有mp3代码 magicalcoder的代码生成器 代码生成工具下载 代码生成器原理 MP 代码生成器工具类,希望能帮助你了解 MP 代码生成器工具类。
public static void main(String[] args) {
// String parentPath = System.getProperty("user.dir"); // 如果工程就一个模块只设置 parentName
String parentPath = "E:\\xxx\\xxx\\"; // 如果工程就一个模块只设置 parentName
String submoduleName = "test"; // 如果有子模块还需设置 submoduleName 一般针对一个模块的表
String generatingPath = "com.cnda.server"; // 逆向生成的代码的根路径
* -- 生成基本的resultMap
* -- 生成基本的SQL片段,也就是xml文件中的sql标签,包含了表中的字段名
.setAuthor("cnda")
// 是否支持AR模式:AR 模式相对于原始的 MP 模式来说,可以通过 pojo 实体类(继承了 Model 类)
// 直接操作数据库。但是底层任然是使用 mapper 进行操作。
// .setActiveRecord(true)
// 生成路径:项目地址 + 模块地址,一般情况下
.setOutputDir(parentPath + "/"+ submoduleName+"/src/main/java")
// 文件覆盖
//.setFileOverride(false)
// 打开输出目录
.setOpen(false)
// 主键策略
.setIdType(IdType.AUTO)
// 设置日期格式
//.setDateType(DateType.ONLY_DATE)
// 设置生成的service接口的名字的首字母是否为I,默认Service是以I开头的
.setServiceName("%sService")
//生成基本的resultMap
.setBaseResultMap(true)
// 实体属性 swagger2 注解
//.setSwagger2(true)
//生成基本的SQL片段
.setBaseColumnList(true);
//2. 数据源配置
* DataSourceConfig的主要属性配置
* 此处为MP连接数据库读取数据库中表的属性和字段名,帮我们自动生成项目结构和数据库中表对应的实体类
* -- 数据库类型
DataSourceConfig dsConfig = new DataSourceConfig();
// 设置数据库类型
dsConfig//.setDbType(DbType.MYSQL)
.setDriverName("com.mysql.cj.jdbc.Driver")
.setUrl("jdbc:mysql://localhost:3306/yeb?useUnicode=true characterEncoding=UTF-8 serverTimezone=Asia/Shanghai")
.setUsername("root")
.setPassword("root");
// 自定义配置
InjectionConfig cfg = new InjectionConfig() {
@Override
public void initMap() {
// 如果模板引擎是 freemarker
String templatePath = "/templates/mapper.xml.ftl";
// 通过模板引擎是 velocity
// String templatePath = "/templates/mapper.xml.vm";
// 自定义输出配置
List FileOutConfig focList = new ArrayList ();
// 自定义配置会被优先输出
// 定义了 mapper.xml 文件输出的位置!指向的是 resources/mapper/*
focList.add(new FileOutConfig(templatePath) {
@Override
public String outputFile(TableInfo tableInfo) {
// 自定义输出文件名 , 如果你 Entity 设置了前后缀、此处注意 xml 的名称会跟着发生变化!!
return parentPath + "/"+submoduleName+"/src/main/resources/mapper/"+tableInfo.getEntityName() + "Mapper" + StringPool.DOT_XML;
cfg.setFileOutConfigList(focList);
// 配置模板
TemplateConfig templateConfig = new TemplateConfig();
templateConfig.setXml(null);
* -- 数据库表映射到实体类的命名策略
* -- 生成表(要生成实体类的表名,支持多表·11一起生成,以数组的形式填写)
* -- 设置表的前缀(TablePrefix)
StrategyConfig stConfig = new StrategyConfig();
//全局大写命名
stConfig.setCapitalMode(true)
// 数据库表映射到实体的命名策略
.setNaming(NamingStrategy.underline_to_camel) // 驼峰命名
// 数据库表字段映射实体类的命名策略
.setColumnNaming(NamingStrategy.no_change) // 不做任何改变
// lombok 模型
.setEntityLombokModel(true)
// 生成 @RestController 控制器
.setRestControllerStyle(true)
// 生成的表,多个表以英文逗号区分
.setInclude(scanner("表名,多个英文逗号分割").split(",")) // 由 scanner 控制台输入多个表名进行逆向工程生成代码
//url中驼峰转连字符
.setControllerMappingHyphenStyle(true)
// 设置表的前缀,防止生成实体类时出现表的前缀
.setTablePrefix("t_");
//4. 包名策略配置
* PackageConfig的主要属性配置
* 公共包--Parent
PackageConfig pkConfig = new PackageConfig();
pkConfig.setParent(generatingPath)
.setMapper("mapper")
.setService("service")
.setController("controller")
.setServiceImpl("service.impl")
.setEntity("pojo");
// mapper.xml 之前在 InjectionConfig 那里配置过了
//.setXml("mapper");
//5. 整合配置
* 整合需要的对象有:
* -- GlobalConfig
* -- DataSourceConfig
* -- StrategyConfig
* -- PackageConfig
ag.setGlobalConfig(config)
.setDataSource(dsConfig)
.setStrategy(stConfig)
.setCfg(cfg)
.setTemplate(templateConfig)
.setTemplateEngine(new FreemarkerTemplateEngine())
.setPackageInfo(pkConfig);
//6. 执行
ag.execute();
System.out.println("======= 代码生成完毕 ========");
上面应该能满足大部分基础的项目结构。需要注意的是前面几个路径的变量设置。
还有一个就是 mapper.xml 一般是在项目的 resource目录下,如果需要设置到与 mapper接口一个包下,就需要将 ag.setCfg(cfg)删除,然后再 pkConfig.setXml("path")保证与 setMapper("path")保持一致即可。
以上就是MP 代码生成器工具类(magicalcoder的代码生成器)的详细内容,想要了解更多 MP 代码生成器工具类的内容,请持续关注盛行IT软件开发工作室。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。