SpringBoot - MyBatis-Plus使用详解13(代码生成器)
AutoGenerator 是 MyBatis-Plus 的代码生成器,通过 AutoGenerator 可以快速生成 Entity、Mapper、Mapper XML、Service、Controller 等各个模块的代码,极大的提升了开发效率。
十三、代码生成器
1,添加依赖
要使用代码生成器,项目除了要添加数据库驱动依赖外,还需添加代码生成器以及模板引擎依赖。
<!-- 数据库驱动依赖 --> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> </dependency> <!-- 代码生成器依赖 --> <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-generator</artifactId> <version>3.3.1.tmp</version> </dependency> <!-- 模板引擎依赖 --> <dependency> <groupId>org.apache.velocity</groupId> <artifactId>velocity-engine-core</artifactId> <version>2.2</version> </dependency>
2,开始生成代码
(1)这里我们选择创建一个测试类,里面内容如下:提示:具体的配置可以根据项目不同自行修改,尤其注意高亮部分。
public class CodeGenerator { @Test public void startGenerator() { //1、全局配置 GlobalConfig config = new GlobalConfig(); String projectPath = System.getProperty("user.dir"); config.setActiveRecord(true)//开启AR模式 .setAuthor("hangge")//设置作者 .setOutputDir(projectPath + "/src/main/java")//生成路径(一般在此项目的src/main/java下) .setFileOverride(true)//第二次生成会把第一次生成的覆盖掉 .setOpen(true)//生成完毕后是否自动打开输出目录 //.setSwagger2(true)//实体属性 Swagger2 注解 .setIdType(IdType.AUTO)//主键策略 .setServiceName("%sService")//生成的service接口名字首字母是否为I,这样设置就没有I .setBaseResultMap(true)//生成resultMap .setBaseColumnList(true);//在xml中生成基础列 //2、数据源配置 DataSourceConfig dataSourceConfig = new DataSourceConfig(); dataSourceConfig.setDbType(DbType.MYSQL)//数据库类型 .setDriverName("com.mysql.jdbc.Driver") .setUrl("jdbc:mysql://localhost:3306/hangge2") .setUsername("root") .setPassword("hangge1234"); //3、策略配置 StrategyConfig strategyConfig = new StrategyConfig(); strategyConfig.setCapitalMode(true)//开启全局大写命名 .setNaming(NamingStrategy.underline_to_camel)//表名映射到实体的命名策略(下划线到驼峰) //表字段映射属性名策略(未指定按naming) .setColumnNaming(NamingStrategy.underline_to_camel) //.setTablePrefix("tb_")//表名前缀 //.setSuperEntityClass("你自己的父类实体,没有就不用设置!") //.setSuperEntityColumns("id");//写于父类中的公共字段 //.setSuperControllerClass("自定义继承的Controller类全称,带包名,没有就不用设置!") .setRestControllerStyle(true) //生成 @RestController 控制器 .setEntityLombokModel(true)//使用lombok .setInclude("user_info","area");//逆向工程使用的表 //4、包名策略配置 PackageConfig packageConfig = new PackageConfig(); packageConfig.setParent("com.example.demo")//设置包名的parent .setMapper("mapper") .setService("service") .setController("controller") .setEntity("entity") .setXml("mapper");//设置xml文件的目录 //5、整合配置 AutoGenerator autoGenerator = new AutoGenerator(); autoGenerator.setGlobalConfig(config) .setDataSource(dataSourceConfig) .setStrategy(strategyConfig) .setPackageInfo(packageConfig); //6、执行 autoGenerator.execute(); } }
(2)运行该 junit 测试:

