MybatisPlus使用代码生成器遇到的小问题(推荐)

时间:2021-05-20

MybatisPlus 给我们提供了更加强大的代码生成器

MyBatisPlus 在3.0.3版本之前使用代码生成器因为存在默认依赖,所以不需要其他的依赖,项目中使用的是3.0.1的版本,所以不用添加其他依赖,添加之后反倒是会报错,实际上MP官网上已经说明了这一点,只是自己没注意才出现错误

3.0.3版本之后就需要添加如下依赖

<dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-generator</artifactId> <version>3.2.0</version></dependency><dependency> <groupId>org.apache.velocity</groupId> <artifactId>velocity-engine-core</artifactId> <version>2.1</version></dependency>

MP默认将Velocity作为模板引擎,同时也支持Freemarker、Beetl 需要替换参看链接

这里贴一个比较简单的代码生成器代码

import com.baomidou.mybatisplus.annotation.DbType;import com.baomidou.mybatisplus.generator.AutoGenerator;import com.baomidou.mybatisplus.generator.config.DataSourceConfig;import com.baomidou.mybatisplus.generator.config.GlobalConfig;import com.baomidou.mybatisplus.generator.config.PackageConfig;import com.baomidou.mybatisplus.generator.config.StrategyConfig;import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;public class CodeGeneration { /** * * @Title: main * @Description: 生成 * @param args */ public static void main(String[] args) { AutoGenerator mpg = new AutoGenerator(); // 全局配置 GlobalConfig gc = new GlobalConfig(); gc.setOutputDir("D:\\generation");//输出文件路径 gc.setFileOverride(true); // 是否文件覆盖 gc.setActiveRecord(false);// 不需要ActiveRecord(实体类继承Model)特性的请改为false gc.setEnableCache(false);// XML 二级缓存 gc.setBaseResultMap(true);// XML ResultMap gc.setBaseColumnList(true);// XML ColumnList gc.setAuthor("lizhan");// 作者 // 自定义文件命名,注意 %s 会自动填充表实体属性! gc.setControllerName("%sController"); // 默认service接口名IXXXService 自定义指定之后就不会用I开头了 gc.setServiceName("%sService"); gc.setServiceImplName("%sServiceImpl"); gc.setMapperName("%sMapper"); gc.setXmlName("%sMapper"); mpg.setGlobalConfig(gc); // 数据源配置 DataSourceConfig dsc = new DataSourceConfig(); dsc.setDbType(DbType.MYSQL); dsc.setDriverName("com.mysql.cj.jdbc.Driver"); dsc.setUsername("xxx"); dsc.setPassword("xxx"); dsc.setUrl("jdbc:mysql://localhost:3306/xxx"); mpg.setDataSource(dsc); // 策略配置 StrategyConfig strategy = new StrategyConfig(); // strategy.setTablePrefix(new String[] { "sys_" });// 此处可以修改为您的表前缀 strategy.setNaming(NamingStrategy.underline_to_camel);// 表名生成策略(下划线转驼峰) strategy.setInclude("user"); // 需要生成的表名 strategy.setSuperServiceClass(null); strategy.setSuperServiceImplClass(null); strategy.setSuperMapperClass(null); mpg.setStrategy(strategy); // 包配置 PackageConfig pc = new PackageConfig(); pc.setParent("com.xxx"); pc.setController("controller"); pc.setService("service"); pc.setServiceImpl("impl"); pc.setMapper("mapper"); pc.setEntity("entity"); pc.setXml("xml"); mpg.setPackageInfo(pc); // 执行生成 mpg.execute(); }}

PS:下面看下MybatisPlus自动生成代码

POM依赖

<dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version></version> </dependency> <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-generator</artifactId> <version></version> </dependency>

样板代码

//01配置链接数据源 public static DataSourceConfig dataSource() { DataSourceConfig dataSourceConfig = new DataSourceConfig(); dataSourceConfig.setDbType(DbType.MYSQL); /**************这里请填写你的ip和你的端口号及数据库名称**************/ dataSourceConfig.setUrl("jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=UTF-8"); /**************您的账号**************/ dataSourceConfig.setUsername("root"); /**************您的密码**************/ dataSourceConfig.setPassword("root"); //您的数据库引擎 dataSourceConfig.setDriverName("com.mysql.cj.jdbc.Driver"); return dataSourceConfig; } //02配置全局 public static GlobalConfig globalConfig() { GlobalConfig globalConfig = new GlobalConfig(); /**************路径**************/ globalConfig.setOutputDir("X:\\xxx\\" + "/src/main/java"); //不会默认打开文件夹 globalConfig.setOpen(false); //创建者 globalConfig.setAuthor("xxx"); //创建serviceImpl不会有大写的I globalConfig.setServiceName("%sService"); return globalConfig; } //03配置包信息 public static PackageConfig packageConfig() { PackageConfig packageConfig = new PackageConfig(); /**************父级包名**************/ packageConfig.setParent("com.xxxxx"); //父级包名称 packageConfig.setModuleName("generator"); packageConfig.setController("controller"); packageConfig.setService("service"); packageConfig.setServiceImpl("service.impl"); packageConfig.setMapper("mapper"); packageConfig.setEntity("entity"); return packageConfig; } //04配置策略 public static StrategyConfig strategyConfig(){ StrategyConfig strategyConfig = new StrategyConfig(); //添加lombok strategyConfig.setEntityLombokModel(true); //下划线转驼峰 strategyConfig.setNaming(NamingStrategy.underline_to_camel); //同上 strategyConfig.setColumnNaming(NamingStrategy.underline_to_camel); /**************要生成的表名**************/ strategyConfig.setInclude("xxx"); return strategyConfig; } public static void main(String[] args) { //创建generator对象 AutoGenerator autoGenerator = new AutoGenerator(); //链接配置 autoGenerator.setDataSource(dataSource()); //全局配置 autoGenerator.setGlobalConfig(globalConfig()); //包信息 autoGenerator.setPackageInfo(packageConfig()); //配置策略 autoGenerator.setStrategy(strategyConfig()); //去吧皮卡丘 autoGenerator.execute(); }

总结

到此这篇关于MybatisPlus使用代码生成器遇到的小问题(推荐)的文章就介绍到这了,更多相关MybatisPlus代码生成器内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!

声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。

相关文章