package com.xtfedu;
import com.baomidou.mybatisplus.annotation.DbType;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
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 java.util.ArrayList;
/**
* @author xu
* @version 1.0
**/
//代码自动生成器
public class xtfAutoCode {
public static void main(String[] args) {
//构建代码自动生成器对象
AutoGenerator mpg = new AutoGenerator();
// 1. 全局配置
GlobalConfig gc = new GlobalConfig();
//获取系统当前目录 projectPath: 当前的项目路径
String projectPath = System.getProperty("user.dir");
//代码输出目录
gc.setOutputDir(projectPath + "/src/main/java");
//设置作者
gc.setAuthor("xtf");
//是否打开资源管理器,就是打开所在文件夹
gc.setOpen(true);
//是否覆盖原来已经生成的
gc.setFileOverride(false);
//去service 的I前缀
gc.setServiceName("%sService");
//设置主键自增
gc.setIdType(IdType.ID_WORKER);
//日期类型
gc.setDateType(DateType.ONLY_DATE);
//自动配置 Swagger 文档
gc.setSwagger2(true);
//全局配置放入生成器
mpg.setGlobalConfig(gc);
// 2. 数据源配置
DataSourceConfig dsc = new DataSourceConfig();
//设置数据库类型
dsc.setDbType(DbType.MYSQL);
dsc.setUrl("jdbc:mysql://localhost:3306/mybatis_plus?useUnicode=true&useSSL=false&characterEncoding=utf8");
// dsc.setSchemaName("public");
dsc.setDriverName("com.mysql.cj.jdbc.Driver");
dsc.setUsername("root");
dsc.setPassword("root");
//把数据源放入到生成器
mpg.setDataSource(dsc);
// 3. 包配置(生成哪些包)
PackageConfig pc = new PackageConfig();
//设置模块
pc.setModuleName("test");
//类放在哪个包下
pc.setParent("com.xtfedu");
pc.setEntity("entity");
pc.setMapper("mapper");
pc.setService("service");
pc.setController("controller");
//把包放入到生成器
mpg.setPackageInfo(pc);
//4. 策略配置
StrategyConfig strategy = new StrategyConfig();
//需要映射表名,也就是生成哪些表
strategy.setInclude("user","pay");
//设置包命名规则, underline_to_camel:下划线转驼峰
strategy.setNaming(NamingStrategy.underline_to_camel);
//设置列命名规则, underline_to_camel:下划线转驼峰
strategy.setColumnNaming(NamingStrategy.underline_to_camel);
strategy.setEntityLombokModel(true);//自动lombok
//RestFul风格
strategy.setRestControllerStyle(true);
//设置逻辑删除
strategy.setLogicDeleteFieldName("deleted");
//设置自动填充
TableFill gmtCreate = new TableFill("gmt_create", FieldFill.INSERT);
TableFill gmtUpdate = new TableFill("gmt_update", FieldFill.INSERT_UPDATE);
ArrayList<TableFill> tableFills = new ArrayList<>();
tableFills.add(gmtCreate);
tableFills.add(gmtUpdate);
strategy.setTableFillList(tableFills);
//乐观锁
strategy.setVersionFieldName("version");
//localhost:8080/hello_id_2
strategy.setControllerMappingHyphenStyle(true);
//把策略放入到生成器
mpg.setStrategy(strategy);
//执行代码自动生成器
mpg.execute();
}
}
MyBatis_Plus自动生成代码类
最新推荐文章于 2023-02-07 10:06:47 发布