MP新版代码生成器

MP新版代码生成器

  • 引入依赖
<!-- mybatis-plus 3.5.7 ==> 3.5.7新版生成器-->
<dependency>
    <groupId>com.baomidou</groupId>
    <artifactId>mybatis-plus-boot-starter</artifactId>
    <version>3.5.7</version>
</dependency>
<dependency>
    <groupId>com.baomidou</groupId>
    <artifactId>mybatis-plus-generator</artifactId>
    <version>3.5.7</version>
</dependency>
<!--mp生成器需要的 模板引擎依赖-->
<dependency>
    <groupId>org.apache.velocity</groupId>
    <artifactId>velocity-engine-core</artifactId>
    <version>2.3</version>
</dependency>
<dependency>
    <groupId>org.freemarker</groupId>
    <artifactId>freemarker</artifactId>
    <version>2.3.28</version>
    <scope>compile</scope>
</dependency>

依赖版本不对会出现某些类找不到的情况

  • 创建代码生成器类
import com.baomidou.mybatisplus.generator.FastAutoGenerator;
import com.baomidou.mybatisplus.generator.config.rules.DbColumnType;
import com.baomidou.mybatisplus.generator.engine.FreemarkerTemplateEngine;

import java.sql.Types;

/**
 * @ClassDescription:
 * @Author: muyuzong
 * @Created: 2024/7/24 10:12
 */
public class CodeGeneration {
    private static final String url = "jdbc:mysql://localhost:3306/jh_v1?allowPublicKeyRetrieval=true&useSSL=false&serverTimezone=UTC";
    private static final String username = "root";
    private static final String password = "root";
    private static final String parentPath = "com.muyz.javaheirloom";

    public static void main(String[] args) {
        FastAutoGenerator.create(url, username, password)
                .globalConfig(builder -> {
                    builder.author("muyz") // 设置作者
                            .enableSwagger() // 开启 swagger 模式
                            .outputDir("src\\main\\java"); // 指定输出目录
                })
                .dataSourceConfig(builder ->
                        builder.typeConvertHandler((globalConfig, typeRegistry, metaInfo) -> {
                            int typeCode = metaInfo.getJdbcType().TYPE_CODE;
                            if (typeCode == Types.SMALLINT) {
                                // 自定义类型转换
                                return DbColumnType.INTEGER;
                            }
                            return typeRegistry.getColumnType(metaInfo);
                        })
                )
                .packageConfig(builder ->
                                builder.parent("") // 设置父包名
                                .entity(parentPath+".entity.v1")// 设置实体类包名
                                .mapper(parentPath+".mapper.v1") // 设置 Mapper 接口包名
//                                .service("service") // 设置 Service 接口包名
//                                .serviceImpl("service.impl") // 设置 Service 实现类包名
                                .xml("resources.mapper.v1") // 设置 Mapper XML 文件包名
                )
                .strategyConfig(builder ->
                        builder.addInclude("employees") // 设置需要生成的表名
//                                .addTablePrefix("t_", "c_") // 设置过滤表前缀
                                .entityBuilder()
                                .enableLombok() // 启用 Lombok
                                .enableTableFieldAnnotation() // 启用字段注解
                                .controllerBuilder()
                                .enableRestStyle() // 启用 REST 风格
                )
                .templateEngine(new FreemarkerTemplateEngine()) // 使用Freemarker引擎模板,默认的是Velocity引擎模板
                .execute();
    }
}

主要关注packageConfig

  • 父包名就是在输出目录src\main\java的下级目录,可设置空字符串,不设置默认baomidou
  • 剩下的mapper service等都在父包下
  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值