代码:
// 需要构建一个 代码自动生成器 对象
AutoGenerator mpg = new AutoGenerator();
// 配置策略
// 1、全局配置
GlobalConfig gc = new GlobalConfig();
//获取当前项目路径
String projectPath = System.getProperty("user.dir");
// 生成目录
gc.setOutputDir(projectPath+"/src/main/java");
// 设置作者
gc.setAuthor("oneZero");
// 是否打开资源管理器
gc.setOpen(false);
// 是否覆盖
gc.setFileOverride(false);
// 主键生成策略
gc.setIdType(IdType.AUTO);
// 设置日期类型
gc.setDateType(DateType.TIME_PACK);
// 保存全局配置
mpg.setGlobalConfig(gc);
// 2、设置数据源
DataSourceConfig dsc = new DataSourceConfig();
dsc.setUrl("jdbc:mysql://localhost:3306/attendance_system?&useSSL=false&serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=UTF-8");
dsc.setDriverName("com.mysql.cj.jdbc.Driver");
dsc.setUsername("root");
dsc.setPassword("填写你的密码");
dsc.setDbType(DbType.MYSQL);
// 保存数据源配置
mpg.setDataSource(dsc);
// 3、包的配置
PackageConfig pc = new PackageConfig();
// 模块名
pc.setModuleName("attendanceSystem");
// 放在哪个包下
pc.setParent("com.centerm");
// 实体类包名
pc.setEntity("entity");
// 持久层包名
pc.setMapper("mapper");
// 业务层包名
pc.setService("service");
// 表现层包名
pc.setController("controller");
// 保存包的配置
mpg.setPackageInfo(pc);
//4、策略配置
StrategyConfig strategy = new StrategyConfig();
// 要映射的表名
strategy.setInclude("user","rule","role","role_rule_relation","position","branch","leave","attendance","branch_relation");
// 表名下划线转驼峰
strategy.setNaming(NamingStrategy.underline_to_camel);
// 列名下划线转驼峰
strategy.setColumnNaming(NamingStrategy.underline_to_camel);
// 自动lombok
strategy.setEntityLombokModel(true);
ArrayList<TableFill> tableFills = new ArrayList<>();
// 自动填充 gmt_create
TableFill gmtCreate = new TableFill("gmt_create", FieldFill.INSERT);
// 自动填充 gmt_modified
TableFill gmtModified = new TableFill("gmt_modified", FieldFill.INSERT_UPDATE);
tableFills.add(gmtCreate);
tableFills.add(gmtModified);
// 设置自动填充字段
strategy.setTableFillList(tableFills);
// 生成 @RestController 控制器
strategy.setRestControllerStyle(true);
// controller路径里驼峰转连字符
strategy.setControllerMappingHyphenStyle(true);
mpg.setStrategy(strategy);
mpg.execute(); //执行
依赖:
<!--导入Spring jdbc-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
<!--mysql连接驱动-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.11</version>
</dependency>
<!--mybatis-plus-->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.4.0</version>
</dependency>
<!--导入mybatis-plus-generator-->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-generator</artifactId>
<version>3.3.2</version>
</dependency>
<!--模板引擎velocity(mybatis-plus)-->
<dependency>
<groupId>org.apache.velocity</groupId>
<artifactId>velocity-engine-core</artifactId>
<version>2.2</version>
</dependency>
注意点:
- 配置了自动填充等自己也需要写相应的配置文件
- 目前的主键配置策略设置失效,可能是由于mysql数据库设置了主键自增