本文仅对使用MyBatis-Plus的代码生成器配置做保存,适合使用了该插件的童鞋做参考。
内部有大量默认配置,有性趣的童鞋可以研究下源码。
ps:官方文档更齐全http://mp.baomidou.com/
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
|
package com.kichun.ucenter.service;
import com.baomidou.mybatisplus.generator.AutoGenerator;
import com.baomidou.mybatisplus.generator.InjectionConfig;
import com.baomidou.mybatisplus.generator.config.*;
import com.baomidou.mybatisplus.generator.config.converts.MySqlTypeConvert;
import com.baomidou.mybatisplus.generator.config.po.TableInfo;
import com.baomidou.mybatisplus.generator.config.rules.DbColumnType;
import com.baomidou.mybatisplus.generator.config.rules.DbType;
import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
import com.baomidou.mybatisplus.generator.engine.FreemarkerTemplateEngine;
import java.io.File;
import java.util.*;
/**
* Created by wangqichang on 2018/6/1.
*/
public class MabatisPlusGenerator {
//生成文件所在项目路径
private static String baseProjectPath = "D:\\\\Git\\\\strandrd_official_website\\\\kichun\\\\kichun-ucenter\\\\kichun-ucenter-entity" ;
//基本包名
private static String basePackage= "com.kichun.ucenter" ;
//作者
private static String authorName= "wangqichang" ;
//要生成的表名
private static String[] tables= { "t_role" , "t_resource" , "t_role_resource" , "t_user_role" };
//table前缀
private static String prefix= "t_" ;
//数据库配置四要素
private static String driverName = "net.sf.log4jdbc.DriverSpy" ;
private static String url = "jdbc:log4jdbc:mysql://127.0.0.1:3306/kichun_dev?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&allowMultiQueries=true" ;
private static String username = "不告诉你" ;
private static String password = "密码也不告诉你" ;
public static void main(String[] args) {
AutoGenerator gen = new AutoGenerator();
/**
* 数据库配置
*/
gen.setDataSource( new DataSourceConfig()
.setDbType(DbType.MYSQL)
.setDriverName(driverName)
.setUrl(url)
.setUsername(username)
.setPassword(password)
.setTypeConvert( new MySqlTypeConvert() {
// 自定义数据库表字段类型转换【可选】
@Override
public DbColumnType processTypeConvert(String fieldType) {
System.out.println( "转换类型:" + fieldType);
// if ( fieldType.toLowerCase().contains( "tinyint" ) ) {
// return DbColumnType.BOOLEAN;
// }
return super .processTypeConvert(fieldType);
}
}));
/**
* 全局配置
*/
gen.setGlobalConfig( new GlobalConfig()
.setOutputDir( baseProjectPath + "/src/main/java" ) //输出目录
.setFileOverride( true ) // 是否覆盖文件
.setActiveRecord( true ) // 开启 activeRecord 模式
.setEnableCache( false ) // XML 二级缓存
.setBaseResultMap( true ) // XML ResultMap
.setBaseColumnList( true ) // XML columList
.setOpen( false ) //生成后打开文件夹
.setAuthor(authorName)
// 自定义文件命名,注意 %s 会自动填充表实体属性!
.setMapperName( "%sMapper" )
.setXmlName( "%sMapper" )
.setServiceName( "%sService" )
.setServiceImplName( "%sServiceImpl" )
.setControllerName( "%sController" )
);
/**
* 策略配置
*/
gen.setStrategy( new StrategyConfig()
// .setCapitalMode(true)// 全局大写命名
//.setDbColumnUnderline(true)//全局下划线命名
.setTablePrefix( new String[]{prefix}) // 此处可以修改为您的表前缀
.setNaming(NamingStrategy.underline_to_camel) // 表名生成策略
.setInclude(tables) // 需要生成的表
.setRestControllerStyle( true )
//.setExclude(new String[]{"test"}) // 排除生成的表
// 自定义实体父类
// .setSuperEntityClass("com.baomidou.demo.TestEntity")
// 自定义实体,公共字段
//.setSuperEntityColumns(new String[]{"test_id"})
//.setTableFillList(tableFillList)
// 自定义 mapper 父类 默认BaseMapper
//.setSuperMapperClass("com.baomidou.mybatisplus.mapper.BaseMapper")
// 自定义 service 父类 默认IService
// .setSuperServiceClass("com.baomidou.demo.TestService")
// 自定义 service 实现类父类 默认ServiceImpl
// .setSuperServiceImplClass("com.baomidou.demo.TestServiceImpl")
// 自定义 controller 父类
//.setSuperControllerClass("com.kichun."+packageName+".controller.AbstractController")
// 【实体】是否生成字段常量(默认 false)
// public static final String ID = "test_id";
// .setEntityColumnConstant(true)
// 【实体】是否为构建者模型(默认 false)
// public User setName(String name) {this.name = name; return this;}
// .setEntityBuilderModel(true)
// 【实体】是否为lombok模型(默认 false)<a href="https://projectlombok.org/" rel="external nofollow" >document</a>
.setEntityLombokModel( true )
// Boolean类型字段是否移除is前缀处理
// .setEntityBooleanColumnRemoveIsPrefix(true)
// .setRestControllerStyle(true)
// .setControllerMappingHyphenStyle(true)
);
/**
* 包配置
*/
gen.setPackageInfo( new PackageConfig()
//.setModuleName("User")
.setParent(basePackage) // 自定义包路径
.setController( "controller" ) // 这里是控制器包名,默认 web
.setEntity( "entity" )
.setMapper( "dao" )
.setService( "service" )
.setServiceImpl( "service.impl" )
.setXml( "mapper" )
);
/**
* 注入自定义配置
*/
// 注入自定义配置,可以在 VM 中使用 cfg.abc 设置的值
InjectionConfig abc = new InjectionConfig() {
@Override
public void initMap() {
Map<String, Object> map = new HashMap<>();
map.put( "abc" , this .getConfig().getGlobalConfig().getAuthor() + "-mp" );
this .setMap(map);
}
};
//自定义文件输出位置(非必须)
List<FileOutConfig> fileOutList = new ArrayList<>();
fileOutList.add( new FileOutConfig( "/templates/mapper.xml.ftl" ) {
@Override
public String outputFile(TableInfo tableInfo) {
return baseProjectPath + "/src/main/resources/mappers/" + tableInfo.getEntityName() + ".xml" ;
}
});
abc.setFileOutConfigList(fileOutList);
gen.setCfg(abc);
/**
* 指定模板引擎 默认是VelocityTemplateEngine ,需要引入相关引擎依赖
*/
gen.setTemplateEngine( new FreemarkerTemplateEngine());
/**
* 模板配置
*/
gen.setTemplate(
// 关闭默认 xml 生成,调整生成 至 根目录
new TemplateConfig().setXml( null )
// 自定义模板配置,模板可以参考源码 /mybatis-plus/src/main/resources/template 使用 copy
// 至您项目 src/main/resources/template 目录下,模板名称也可自定义如下配置:
// .setController("...");
// .setEntity("...");
// .setMapper("...");
// .setXml("...");
// .setService("...");
// .setServiceImpl("...");
);
// 执行生成
gen.execute();
}
}
|
到此这篇关于MyBatis-Plus Generator配置详解的文章就介绍到这了,更多相关MyBatis-Plus Generator配置内容请搜索快网idc以前的文章或继续浏览下面的相关文章希望大家以后多多支持快网idc!
原文链接:https://www.cnblogs.com/huangjinyong/p/11234268.html
相关文章
猜你喜欢
- ASP.NET自助建站系统中如何实现多语言支持? 2025-06-10
- 64M VPS建站:如何选择最适合的网站建设平台? 2025-06-10
- ASP.NET本地开发时常见的配置错误及解决方法? 2025-06-10
- ASP.NET自助建站系统的数据库备份与恢复操作指南 2025-06-10
- 个人网站服务器域名解析设置指南:从购买到绑定全流程 2025-06-10
TA的动态
- 2025-07-10 怎样使用阿里云的安全工具进行服务器漏洞扫描和修复?
- 2025-07-10 怎样使用命令行工具优化Linux云服务器的Ping性能?
- 2025-07-10 怎样使用Xshell连接华为云服务器,实现高效远程管理?
- 2025-07-10 怎样利用云服务器D盘搭建稳定、高效的网站托管环境?
- 2025-07-10 怎样使用阿里云的安全组功能来增强服务器防火墙的安全性?
快网idc优惠网
QQ交流群
您的支持,是我们最大的动力!
热门文章
-
2025-05-29 72
-
2025-05-29 47
-
2025-06-04 51
-
2025-06-05 39
-
2025-05-25 32
热门评论