MybatisPlus代码生成器 MybatisPlus使用代码生成器遇到的小问题(推荐)
OverZeal 人气:0想了解MybatisPlus使用代码生成器遇到的小问题(推荐)的相关内容吗,OverZeal在本文为您仔细讲解MybatisPlus代码生成器的相关知识和一些Code实例,欢迎阅读和指正,我们先划重点:MybatisPlus代码生成器,MybatisPlus自动生成代码,下面大家一起来学习吧。
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(); }
总结
加载全部内容