- 创建一个生成代码的配置类
package com.offcn.generator;
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 PlusGenerator {
public static void main(String[] args) {
//代码生成对象
AutoGenerator mpg = new AutoGenerator();
//全局配置:作者 项目路径 名称定义格式
GlobalConfig gc = new GlobalConfig();
//读取当前项目路径,user.dir是关键字,调用结果就是项目路径
String projectPath = System.getProperty("user.dir");
gc.setOutputDir(projectPath+"/src/main/java");
gc.setAuthor("cjw"); //设置作者
gc.setOpen(false); //生成之后是否打开资源管理器
gc.setFileOverride(false); //重新生成文件时是否覆盖
gc.setServiceName("%sService"); //命名格式的设置
//gc.setSwagger2(true); //实体属性Swagger2注解
//需要把设置的信息放入代码生成对象
mpg.setGlobalConfig(gc);
//数据源配置
DataSourceConfig dsc = new DataSourceConfig();
dsc.setUrl("jdbc:mysql:///offcnpe?useUnicode=true&useSSL=false&characterEncoding=utf8");
dsc.setDriverName("com.mysql.jdbc.Driver");
dsc.setUsername("root");
dsc.setPassword("root");
dsc.setDbType(DbType.MYSQL); //设置那种数据库
mpg.setDataSource(dsc);
//包名配置:控制层、业务层、持久层、映射文件名
PackageConfig pc = new PackageConfig();
pc.setModuleName(null); //设置模块的名字
pc.setParent("com.offcn"); //几层的基础包
pc.setController("controller");
pc.setService("service");
pc.setServiceImpl("service.impl");
pc.setMapper("mapper");
mpg.setPackageInfo(pc);
//配置策略:参与代码生成的表、类名、接口名命名方法
StrategyConfig sc = new StrategyConfig();
sc.setInclude("t_checkgroup","t_checkgroup_checkitem","t_checkitem",
"t_member","t_menu","t_order","t_ordersetting","t_role","t_permission",
"t_role_menu","t_role_permission","t_setmeal","t_setmeal_checkgroup",
"t_user","t_user_role"); //对哪一张表生成代码
sc.setNaming(NamingStrategy.underline_to_camel); //数据库表映射到实体类的命名策略
sc.setTablePrefix(pc.getModuleName() + "_"); //生成实体类时去掉前缀
sc.setColumnNaming(NamingStrategy.underline_to_camel); //数据库表字段映射道试题类的命名策略
sc.setEntityLombokModel(true); //lombok模型 @Accessors(chain = true) setter链式操作
sc.setRestControllerStyle(true); //restful api风格控制器
sc.setControllerMappingHyphenStyle(true); //url中驼峰转连接字符
mpg.setStrategy(sc);
//执行生成代码的方法
mpg.execute();
}
}
- maven项目 依赖有
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.49</version>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.4.2</version>
</dependency>
<!--代码生成器-->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-generator</artifactId>
<version>3.4.1</version>
</dependency>
<!--模板引擎-->
<dependency>
<groupId>org.apache.velocity</groupId>
<artifactId>velocity-engine-core</artifactId>
<version>2.3</version>
</dependency>
</dependencies>