1.导入坐标
不需要Swagger 的可以去掉
<dependencies>
<!-- Swagger 导包 -->
<!-- https://mvnrepository.com/artifact/io.springfox/springfox-swagger2 -->
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>2.9.2</version>
</dependency>
<!-- https://mvnrepository.com/artifact/io.springfox/springfox-swagger-ui -->
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>2.9.2</version>
</dependency>
<!--sql分析插件-->
<dependency>
<groupId>p6spy</groupId>
<artifactId>p6spy</artifactId>
<version>3.8.1</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>com.mysql</groupId>
<artifactId>mysql</artifactId>
<version>8.0.21</version>
</dependency>
<!-- mybatis-plus代码生成器依赖 -->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-generator</artifactId>
<version>3.3.0</version>
</dependency>
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.3.0</version>
</dependency>
<!--模板引擎-->
<dependency>
<groupId>org.apache.velocity</groupId>
<artifactId>velocity-engine-core</artifactId>
<version>2.0</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>
<exclusions>
<exclusion>
<groupId>org.junit.vintage</groupId>
<artifactId>junit-vintage-engine</artifactId>
</exclusion>
</exclusions>
</dependency>
</dependencies>
2.添加一个类用于自动生成代码
//代码自动生成器
public class KuangCode {
public static void main(String[] args) {
//构建一个代码生成器对象
AutoGenerator mpg = new AutoGenerator();
//配置策略
//1.全局配置
GlobalConfig gc = new GlobalConfig();
String propertyPath = System.getProperty("user.dir");//当前系统目录
gc.setOutputDir(propertyPath+"/src/main/java");
gc.setAuthor("狂神说");//设置作者
gc.setOpen(false);//生成后是否打开文件夹
gc.setFileOverride(false);//是否覆盖文件
gc.setServiceName("%sService"); //去掉Service的I前缀
gc.setIdType(IdType.AUTO); //主键生成策略
gc.setDateType(DateType.ONLY_DATE);
gc.setSwagger2(true); //swagger文档
mpg.setGlobalConfig(gc); //设置全局配置
//2.设置数据源
DataSourceConfig dsc = new DataSourceConfig();
dsc.setUrl("jdbc:mysql://localhost:3306/mybatisplus?characterEncoding=utf-8");
dsc.setUsername("root");
dsc.setPassword("1511");
dsc.setDriverName("com.mysql.cj.jdbc.Driver");
dsc.setDbType(DbType.MYSQL);
mpg.setDataSource(dsc);
//3.包的配置
PackageConfig pc = new PackageConfig();
pc.setModuleName("blog");
pc.setEntity("entity");
pc.setParent("com.kuang");
pc.setMapper("mapper");
pc.setService("service");
pc.setController("controller");
mpg.setPackageInfo(pc);
// 4.策略配置
StrategyConfig strategy = new StrategyConfig();
strategy.setInclude("user","one","two"); //根据数据库表创建实体类 可以接收多个参数(表)
strategy.setNaming(NamingStrategy.underline_to_camel);
strategy.setColumnNaming(NamingStrategy.underline_to_camel);
strategy.setEntityLombokModel(true);
strategy.setLogicDeleteFieldName("deleted"); //逻辑删除字段
//自动填充配置
TableFill createTime = new TableFill("create_time", FieldFill.INSERT);
TableFill updateTime = new TableFill("update_time", FieldFill.UPDATE);
ArrayList<TableFill> tf = new ArrayList<>();
tf.add(createTime);
tf.add(updateTime);
strategy.setTableFillList(tf);
//乐观锁
strategy.setVersionFieldName("version");
mpg.setStrategy(strategy);
mpg.execute(); //执行
}
}
下图是一键生成多表的图