MyBatis-Plus Generator配置详解

2025-05-29 0 54

本文仅对使用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

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

快网idc优惠网 建站教程 MyBatis-Plus Generator配置详解 https://www.kuaiidc.com/118200.html

相关文章

发表评论
暂无评论