基于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(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。