AutoGenerator 是 MyBatis-Plus 的代码生成器,通过 AutoGenerator 可以快速生成 Entity、Mapper、Mapper XML、Service、Controller 等各个模块的代码,极大的提升了开发效率。
如何使用?
1、引入依赖
<!--代码生成器-->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-generator</artifactId>
<version>3.4.1</version>
</dependency>
2、编写配置
package com.example.demo;
import com.baomidou.mybatisplus.annotation.DbType;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.generator.AutoGenerator;
import com.baomidou.mybatisplus.generator.config.*;
import com.baomidou.mybatisplus.generator.config.rules.DateType;
import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
import com.baomidou.mybatisplus.generator.engine.FreemarkerTemplateEngine;
import org.springframework.ui.Model;
public class code {
public static void main(String[] args) {
//需要构建一个 代码生成器 对象
AutoGenerator mpg =new AutoGenerator();
// 1、全局配置
GlobalConfig gc=new GlobalConfig();
gc.setOutputDir(System.getProperty("user.dir")+"/src/main/java");
gc.setAuthor("陈公子");
gc.setOpen(false);
gc.setFileOverride(false);//是否覆盖源文档
// gc.setServiceName("%sService");
// gc.setIdType(IdType.ASSIGN_ID);
// gc.setDateType(DateType.ONLY_DATE);
// gc.setSwagger2(true);
mpg.setGlobalConfig(gc);
// 2、配置数据源
DataSourceConfig dsc = new DataSourceConfig();
dsc.setDriverName("com.mysql.cj.jdbc.Driver");
dsc.setPassword("root");
dsc.setUrl("jdbc:mysql://localhost:3306/mybatis?useUnicode=true&characterEncoding=utf-8&useSSL=true&serverTimezone=UTC");
dsc.setUsername("root");
dsc.setDbType(DbType.MYSQL);
mpg.setDataSource(dsc);
// 3、配置包设置
PackageConfig packageConfig = new PackageConfig();
packageConfig.setModuleName("demo");
packageConfig.setParent("com.example");
mpg.setPackageInfo(packageConfig);
// 4、配置策略
StrategyConfig strategyConfig = new StrategyConfig();
strategyConfig.setInclude("classes");
strategyConfig.setNaming(NamingStrategy.underline_to_camel); //字段驼峰命名
strategyConfig.setColumnNaming(NamingStrategy.underline_to_camel); //数据表字段驼峰命名
strategyConfig.setEntityLombokModel(true); //自动lombok注解生成
strategyConfig.setLogicDeleteFieldName("deleted"); //逻辑删除
strategyConfig.setVersionFieldName("version"); //乐观锁
strategyConfig.setRestControllerStyle(true);
strategyConfig.setControllerMappingHyphenStyle(true); //localhsot:8080/hello_id_3
mpg.setStrategy(strategyConfig);
mpg.setTemplateEngine(new FreemarkerTemplateEngine());
mpg.execute(); //执行
}
}
3、测试用例