~~~
package cn.maicaii.service.edu;
/*Generator ˈdʒenəreɪtər 生成器
* */
import com.baomidou.mybatisplus.annotation.DbType;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.IdType;
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.po.TableFill;
import com.baomidou.mybatisplus.generator.config.rules.DateType;
import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
import org.apache.tomcat.util.security.Escape;
import org.junit.jupiter.api.Test;
import java.util.ArrayList;
// 演示例子,执行 main 方法控制台输入模块表名回车自动生成对应项目目录中
public class CodeGenerator {
@Test
public void getCode() {
String prefix = "service"; //数据库前缀
String moduleName = "edu"; //表前缀
//1.创建代码生成器
AutoGenerator mpg = new AutoGenerator();
//2.全局配置
GlobalConfig gc = new GlobalConfig();
String projectPath = System.getProperty("user.dir");
gc.setOutputDir(projectPath + "/src/main/java");
gc.setAuthor("作者:曾明勇 QQ:2679652842 ");//生成作者注释
gc.setOpen(false);//生成后是否打开资源管理器
gc.setSwagger2(true); //实体属性 Swagger2 注解
gc.setFileOverride(true);//重新生成时文件是否覆盖
gc.setServiceName("%sServive");//去掉Service接口的首字母I
gc.setIdType(IdType.ASSIGN_ID);//主键策略
gc.setDateType(DateType.ONLY_DATE);//设置日期策略
mpg.setGlobalConfig(gc);
//3. 数据源配置
DataSourceConfig dsc = new DataSourceConfig();
dsc.setUrl("jdbc:mysql://rm-2zea917282a9u6o4dqo.mysql.rds.aliyuncs.com:3306/service_edu?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC");
dsc.setDriverName("com.mysql.cj.jdbc.Driver");
dsc.setUsername("zeng1996");
dsc.setPassword("Zeng1996");
dsc.setDbType(DbType.MYSQL);
mpg.setDataSource(dsc);
// 4.包配置
PackageConfig pc = new PackageConfig();
pc.setModuleName(moduleName);//模块名称
pc.setParent("com.maicaii.service");
pc.setController("controller");
pc.setEntity("entity");
pc.setService("service");
pc.setMapper("mapper");
mpg.setPackageInfo(pc);
// 5.策略配置
StrategyConfig strategy = new StrategyConfig();
strategy.setNaming(NamingStrategy.underline_to_camel);//数据库映射到实体的命名策略
strategy.setTablePrefix(moduleName + "_");//设置表字段前缀不生效
strategy.setColumnNaming(NamingStrategy.underline_to_camel);//数据库映射到实体的命名策略
// strategy.setSuperEntityClass("你自己的父类实体,没有就不用设置!");
strategy.setEntityLombokModel(true);//lombok模型@Accessars(chain=true) seeter链式操作
strategy.setLogicDeleteFieldName("is_deleted");//软删除字段名
strategy.setRestControllerStyle(true);//去掉布尔值的is_前缀
//6.自动配置
TableFill getCreate = new TableFill("get_create", FieldFill.INSERT);
TableFill getModified = new TableFill("get_modified", FieldFill.INSERT_UPDATE);
ArrayList<TableFill> tableFeills = new ArrayList<>();
tableFeills.add(getCreate);
tableFeills.add(getModified);
strategy.setTableFillList(tableFeills);
strategy.setRestControllerStyle(true);//restful api风格控制器
strategy.setControllerMappingHyphenStyle(true);//url中驼峰式转连字符
mpg.setStrategy(strategy);
//7 .执行生成代码 控制器 实体类 服务层 持久层
mpg.execute();
}
}
~~~