基于Mybatis plus 自动代码生成器的实现代码
1.使用的是maven项目,添加依赖
com.baomidou mybatis-plus 2.2.0
还有数据库的连接
mysql mysql-connector-java compile
最后是源码
importcom.baomidou.mybatisplus.generator.AutoGenerator;
importcom.baomidou.mybatisplus.generator.config.DataSourceConfig;
importcom.baomidou.mybatisplus.generator.config.GlobalConfig;
importcom.baomidou.mybatisplus.generator.config.PackageConfig;
importcom.baomidou.mybatisplus.generator.config.StrategyConfig;
importcom.baomidou.mybatisplus.generator.config.rules.DbType;
importcom.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
importorg.junit.jupiter.api.Test;
/**
*mybatis-plus自动生成代码
*
*@authorTerry
*@version1.0
*@date2018-05-1609:35
*/
publicclassSimpleMp{
@Test
publicvoidgenerateCode(){
//指定包名
StringpackageName="com.hciot.hhhh";
//user->UserService,设置成true:user->IUserService
booleanserviceNameStartWithI=false;
//指定生成的表名
String[]tableNames=newString[]{"data_air_sensor_co","order_product","relation_device_gateway"};
generateByTables(serviceNameStartWithI,packageName,tableNames);
}
/**
*根据表自动生成
*
*@paramserviceNameStartWithI默认为false
*@parampackageName包名
*@paramtableNames表名
*@authorTerry
*/
privatevoidgenerateByTables(booleanserviceNameStartWithI,StringpackageName,String...tableNames){
//配置数据源
DataSourceConfigdataSourceConfig=getDataSourceConfig();
//策略配置
StrategyConfigstrategyConfig=getStrategyConfig(tableNames);
//全局变量配置
GlobalConfigglobalConfig=getGlobalConfig(serviceNameStartWithI);
//包名配置
PackageConfigpackageConfig=getPackageConfig(packageName);
//自动生成
atuoGenerator(dataSourceConfig,strategyConfig,globalConfig,packageConfig);
}
/**
*集成
*
*@paramdataSourceConfig配置数据源
*@paramstrategyConfig策略配置
*@paramconfig全局变量配置
*@parampackageConfig包名配置
*@authorTerry
*/
privatevoidatuoGenerator(DataSourceConfigdataSourceConfig,StrategyConfigstrategyConfig,GlobalConfigconfig,PackageConfigpackageConfig){
newAutoGenerator()
.setGlobalConfig(config)
.setDataSource(dataSourceConfig)
.setStrategy(strategyConfig)
.setPackageInfo(packageConfig)
.execute();
}
/**
*设置包名
*
*@parampackageName父路径包名
*@returnPackageConfig包名配置
*@authorTerry
*/
privatePackageConfiggetPackageConfig(StringpackageName){
returnnewPackageConfig()
.setParent(packageName)
.setXml("mapper")
.setMapper("dao")
.setController("controller")
.setEntity("entity");
}
/**
*全局配置
*
*@paramserviceNameStartWithIfalse
*@returnGlobalConfig
*@authorTerry
*/
privateGlobalConfiggetGlobalConfig(booleanserviceNameStartWithI){
GlobalConfigglobalConfig=newGlobalConfig();
globalConfig
.setBaseColumnList(true)
.setBaseResultMap(true)
.setActiveRecord(false)
.setAuthor("Terry")
//设置输出路径
.setOutputDir(getOutputDir("mybatis-plus"))
.setFileOverride(true);
if(!serviceNameStartWithI){
//设置service名
globalConfig.setServiceName("%sService");
}
returnglobalConfig;
}
/**
*返回项目路径
*
*@paramprojectName项目名
*@return项目路径
*@authorTerry
*/
privateStringgetOutputDir(StringprojectName){
Stringpath=this.getClass().getClassLoader().getResource("").getPath();
intindex=path.indexOf(projectName);
returnpath.substring(1,index)+projectName+"/src/main/java/";
}
/**
*策略配置
*
*@paramtableNames表名
*@returnStrategyConfig
*@authorTerry
*/
privateStrategyConfiggetStrategyConfig(String...tableNames){
returnnewStrategyConfig()
//全局大写命名ORACLE注意
.setCapitalMode(true)
.setEntityLombokModel(false)
//表名、字段名、是否使用下划线命名(默认false)
.setDbColumnUnderline(true)
//从数据库表到文件的命名策略
.setNaming(NamingStrategy.underline_to_camel)
//需要生成的的表名,多个表名传数组
.setInclude(tableNames);
}
/**
*配置数据源
*
*@return数据源配置DataSourceConfig
*@authorTerry
*/
privateDataSourceConfiggetDataSourceConfig(){
StringdbUrl="jdbc:mysql://localhost:3306/test";
returnnewDataSourceConfig().setDbType(DbType.MYSQL)
.setUrl(dbUrl)
.setUsername("root")
.setPassword("root")
.setDriverName("com.mysql.jdbc.Driver");
}
/**
*根据表自动生成
*
*@parampackageName包名
*@paramtableNames表名
*@authorTerry
*/
@SuppressWarnings("unused")
privatevoidgenerateByTables(StringpackageName,String...tableNames){
generateByTables(true,packageName,tableNames);
}
}
总结
以上所述是小编给大家介绍的基于Mybatisplus自动代码生成器的实现代码,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对毛票票网站的支持!
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。