使用mybatis-plus方法自动生成代码(1)

发布时间 2023-04-01 21:44:35作者: 海边蓝贝壳
  1. 首先,在项目的 pom.xml 文件中添加如下依赖:
<dependency>
    <groupId>com.baomidou</groupId>
    <artifactId>mybatis-plus-generator</artifactId>
    <version>3.4.3</version>
</dependency>
<dependency>
    <groupId>org.projectlombok</groupId>
    <artifactId>lombok</artifactId>
    <version>1.18.20</version>
</dependency>
<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>8.0.25</version>
</dependency>
  1. 然后,创建一个代码生成器类,例如:
import com.baomidou.mybatisplus.annotation.DbType;
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.rules.NamingStrategy;

public class CodeGenerator {

    public static void main(String[] args) {

        // 1. 全局配置
        GlobalConfig globalConfig = new GlobalConfig();
        globalConfig.setOutputDir(System.getProperty("user.dir") + "/src/main/java") // 生成文件的输出目录
                .setFileOverride(true) // 是否覆盖已有文件
                .setActiveRecord(true) // 开启 ActiveRecord 模式
                .setEnableCache(false) // 关闭 XML 二级缓存
                .setBaseResultMap(true) // 开启 BaseResultMap
                .setBaseColumnList(true) // 开启 BaseColumnList
                .setAuthor("Your Name") // 作者名称
                .setSwagger2(true) // 开启 Swagger2 模式
                .setServiceName("%sService"); // Service 命名方式,注意 %s 会自动填充表实体属性!

        // 2. 数据源配置
        DataSourceConfig dataSourceConfig = new DataSourceConfig();
        dataSourceConfig.setDbType(DbType.MYSQL) // 数据库类型
                .setUrl("jdbc:mysql://localhost:3306/test?useSSL=false&allowPublicKeyRetrieval=true&serverTimezone=Asia/Shanghai") // 数据库 URL
                .setUsername("root") // 数据库用户名
                .setPassword("123456") // 数据库密码
                .setDriverName("com.mysql.cj.jdbc.Driver"); // 数据库驱动类名

        // 3. 策略配置
        StrategyConfig strategyConfig = new StrategyConfig();
        strategyConfig.setCapitalMode(true) // 是否大写命名
                .setNaming(NamingStrategy.underline_to_camel) // 数据库表映射到实体的命名策略
                .setInclude("table_name_1", "table_name_2") // 需要生成代码的表名
                .setEntityLombokModel(true); // 开启 Lombok 模型

        // 4. 包名配置
        PackageConfig packageConfig = new PackageConfig();
        packageConfig.setParent("com.example.demo") // 父包名
                .setMapper("mapper") // Mapper 包名
                .setService("service") // Service 包名
                .setServiceImpl("service.impl") // ServiceImpl 包名
                .setController("controller") // Controller 包名
                .setEntity("entity"); // Entity 包名

        // 5. 代码生成器配置
        AutoGenerator autoGenerator = new AutoGenerator();
        autoGenerator.setGlobalConfig(globalConfig) // 全局配置
                .setDataSource(dataSourceConfig) // 数据源配置
                .setStrategy(strategyConfig) // 策略配置
                .setPackageInfo(packageConfig); // 包名配置
        autoGenerator.execute(); // 执行代码生成操作

    }
}