MyBatis-Plus Generator配置详解
本文仅对使用MyBatis-Plus的代码生成器配置做保存,适合使用了该插件的童鞋做参考。
内部有大量默认配置,有性趣的童鞋可以研究下源码。
ps:官方文档更齐全http://mp.baomidou.com/
packagecom.kichun.ucenter.service;
importcom.baomidou.mybatisplus.generator.AutoGenerator;
importcom.baomidou.mybatisplus.generator.InjectionConfig;
importcom.baomidou.mybatisplus.generator.config.*;
importcom.baomidou.mybatisplus.generator.config.converts.MySqlTypeConvert;
importcom.baomidou.mybatisplus.generator.config.po.TableInfo;
importcom.baomidou.mybatisplus.generator.config.rules.DbColumnType;
importcom.baomidou.mybatisplus.generator.config.rules.DbType;
importcom.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
importcom.baomidou.mybatisplus.generator.engine.FreemarkerTemplateEngine;
importjava.io.File;
importjava.util.*;
/**
*Createdbywangqichangon2018/6/1.
*/
publicclassMabatisPlusGenerator{
//生成文件所在项目路径
privatestaticStringbaseProjectPath="D:\\Git\\strandrd_official_website\\kichun\\kichun-ucenter\\kichun-ucenter-entity";
//基本包名
privatestaticStringbasePackage="com.kichun.ucenter";
//作者
privatestaticStringauthorName="wangqichang";
//要生成的表名
privatestaticString[]tables={"t_role","t_resource","t_role_resource","t_user_role"};
//table前缀
privatestaticStringprefix="t_";
//数据库配置四要素
privatestaticStringdriverName="net.sf.log4jdbc.DriverSpy";
privatestaticStringurl="jdbc:log4jdbc:mysql://127.0.0.1:3306/kichun_dev?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&allowMultiQueries=true";
privatestaticStringusername="不告诉你";
privatestaticStringpassword="密码也不告诉你";
publicstaticvoidmain(String[]args){
AutoGeneratorgen=newAutoGenerator();
/**
*数据库配置
*/
gen.setDataSource(newDataSourceConfig()
.setDbType(DbType.MYSQL)
.setDriverName(driverName)
.setUrl(url)
.setUsername(username)
.setPassword(password)
.setTypeConvert(newMySqlTypeConvert(){
//自定义数据库表字段类型转换【可选】
@Override
publicDbColumnTypeprocessTypeConvert(StringfieldType){
System.out.println("转换类型:"+fieldType);
//if(fieldType.toLowerCase().contains("tinyint")){
//returnDbColumnType.BOOLEAN;
//}
returnsuper.processTypeConvert(fieldType);
}
}));
/**
*全局配置
*/
gen.setGlobalConfig(newGlobalConfig()
.setOutputDir(baseProjectPath+"/src/main/java")//输出目录
.setFileOverride(true)//是否覆盖文件
.setActiveRecord(true)//开启activeRecord模式
.setEnableCache(false)//XML二级缓存
.setBaseResultMap(true)//XMLResultMap
.setBaseColumnList(true)//XMLcolumList
.setOpen(false)//生成后打开文件夹
.setAuthor(authorName)
//自定义文件命名,注意%s会自动填充表实体属性!
.setMapperName("%sMapper")
.setXmlName("%sMapper")
.setServiceName("%sService")
.setServiceImplName("%sServiceImpl")
.setControllerName("%sController")
);
/**
*策略配置
*/
gen.setStrategy(newStrategyConfig()
//.setCapitalMode(true)//全局大写命名
//.setDbColumnUnderline(true)//全局下划线命名
.setTablePrefix(newString[]{prefix})//此处可以修改为您的表前缀
.setNaming(NamingStrategy.underline_to_camel)//表名生成策略
.setInclude(tables)//需要生成的表
.setRestControllerStyle(true)
//.setExclude(newString[]{"test"})//排除生成的表
//自定义实体父类
//.setSuperEntityClass("com.baomidou.demo.TestEntity")
//自定义实体,公共字段
//.setSuperEntityColumns(newString[]{"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)
//publicstaticfinalStringID="test_id";
//.setEntityColumnConstant(true)
//【实体】是否为构建者模型(默认false)
//publicUsersetName(Stringname){this.name=name;returnthis;}
//.setEntityBuilderModel(true)
//【实体】是否为lombok模型(默认false)document
.setEntityLombokModel(true)
//Boolean类型字段是否移除is前缀处理
//.setEntityBooleanColumnRemoveIsPrefix(true)
//.setRestControllerStyle(true)
//.setControllerMappingHyphenStyle(true)
);
/**
*包配置
*/
gen.setPackageInfo(newPackageConfig()
//.setModuleName("User")
.setParent(basePackage)//自定义包路径
.setController("controller")//这里是控制器包名,默认web
.setEntity("entity")
.setMapper("dao")
.setService("service")
.setServiceImpl("service.impl")
.setXml("mapper")
);
/**
*注入自定义配置
*/
//注入自定义配置,可以在VM中使用cfg.abc设置的值
InjectionConfigabc=newInjectionConfig(){
@Override
publicvoidinitMap(){
Mapmap=newHashMap<>();
map.put("abc",this.getConfig().getGlobalConfig().getAuthor()+"-mp");
this.setMap(map);
}
};
//自定义文件输出位置(非必须)
ListfileOutList=newArrayList<>();
fileOutList.add(newFileOutConfig("/templates/mapper.xml.ftl"){
@Override
publicStringoutputFile(TableInfotableInfo){
returnbaseProjectPath+"/src/main/resources/mappers/"+tableInfo.getEntityName()+".xml";
}
});
abc.setFileOutConfigList(fileOutList);
gen.setCfg(abc);
/**
*指定模板引擎默认是VelocityTemplateEngine,需要引入相关引擎依赖
*/
gen.setTemplateEngine(newFreemarkerTemplateEngine());
/**
*模板配置
*/
gen.setTemplate(
//关闭默认xml生成,调整生成至根目录
newTemplateConfig().setXml(null)
//自定义模板配置,模板可以参考源码/mybatis-plus/src/main/resources/template使用copy
//至您项目src/main/resources/template目录下,模板名称也可自定义如下配置:
//.setController("...");
//.setEntity("...");
//.setMapper("...");
//.setXml("...");
//.setService("...");
//.setServiceImpl("...");
);
//执行生成
gen.execute();
}
}
到此这篇关于MyBatis-PlusGenerator配置详解的文章就介绍到这了,更多相关MyBatis-PlusGenerator配置内容请搜索毛票票以前的文章或继续浏览下面的相关文章希望大家以后多多支持毛票票!
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。