mybatis-plus-generator 3.5版本 自动生成代码

在Java开发中,你一定也想找一个将mysql数据库表自动生成Java实体类,特别是使用了MybatisPlus的框架时,不仅想生成Java实体类,还想自动生成Service类及Mapper接口和Mapper xml文件。Mybatis Plus团队为我们提供了这样一个方便的工具:mybatis-plus-generator,它只要放在maven项目的test目录里,运行main方法即可。

网上有很多不同的版本,由于版本更新快,版本之间可能不一致,有些差异,我当前使用的版本是3.5.3的,目前算是最新的。

第一步:在项目中引入依赖

        <!-- 代码自动生成依赖 begin -->
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-generator</artifactId>
            <version>3.5.3</version>
            <scope>test</scope>
        </dependency>
        <!-- velocity -->
        <dependency>
            <groupId>org.apache.velocity</groupId>
            <artifactId>velocity-engine-core</artifactId>
            <version>2.3</version>
            <!-- 这里使用test模式,这样引用此工具类的项目不会加入这个依赖包了,打包的时候也不会被打包进去  -->
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.jetbrains</groupId>
            <artifactId>annotations</artifactId>
            <version>23.0.0</version>
            <scope>test</scope>
        </dependency>
        <!-- 代码自动生成依赖 end-->

这里只引入了mybatis plus generator工具需要的依赖,实际开发的mybatis 及mybatis plus的依赖根据自己的项目实际情况引入。

第二步: 添加使用mybatis plus generator代码

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.generator.FastAutoGenerator;
import com.baomidou.mybatisplus.generator.config.TemplateType;
import com.baomidou.mybatisplus.generator.config.rules.DateType;
import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;

import java.util.Arrays;
import java.util.List;

/**
 * @author 王广帅
 * @since 2022/8/19 0:13
 */
public class MyBatisPlusGenerator {
    public static void main(String[] args) {
        // 要生成的数据库表名
        List<String> tableNames = Arrays.asList("account", "admin_account");
        // 创建代码生成工具类
        FastAutoGenerator generator = create(tableNames);
        // 执行生成代码
        generator.execute();
    }
	
    private static FastAutoGenerator create(List<String> tableNames) {
        // 数据库连接地址,
        String url = "jdbc:mysql://localhost:3306/virtual-merchant?useUnicode=true&characterEncoding=utf-8&useSSL=true&serverTimezone=UTC";
        // 数据库用户名
        String name = "root";
        // 数据库密码
        String password = "123456";
        FastAutoGenerator generator = FastAutoGenerator.create(url, name, password)
                 // 全局配置
                .globalConfig(builder -> {
                   // 获取生成的代码路径,这里没有写死,是运行时获取的,这样可以防止不同的开发人员来回修改生成路径的问题。
                    String outputDir = System.getProperty("user.dir") + "/project-dao/src/main/java";
                    builder.outputDir(outputDir)
                            .dateType(DateType.ONLY_DATE)
                            // 生成的类注释中的作者名称,为了统一表示,这里写死了
                            .author("Auto Generator");
                })
                // 生成的代码包路径配置
                .packageConfig(builder -> {
                    // 生成的代包公共路径
                    builder.parent("com.xinyue.dao");
                    // 生成的mapper xml的存放目录,是在parent路径下面的
                    builder.xml("mapper")
                            // 生成的实例类目录
                            .entity("entity")
                            // 生成的service目录
                            .service("service")
                            // 生成的ampper目录
                            .mapper("mapper");
                    
                }).strategyConfig(builder -> {
                   // 添加要生成的的数据库表
                    builder.addInclude(tableNames)
                    // 启用大写模式
                            .enableCapitalMode();
                     // 配置生成的实体类策略,不生成serialVersionID
                    builder.entityBuilder().disableSerialVersionUID()
                             // 如果数据库表名带下划线,按驼峰命名法
                            .columnNaming(NamingStrategy.underline_to_camel)
                            // 使用lombok
                            .enableLombok()
                            // 标记实例类的主键生成方式,如果插入时没有指定,刚自动分配一个,默认是雪花算法
                            .idType(IdType.ASSIGN_ID)
                            // 实例类每次生成的时候,覆盖旧的实体类
                            .enableFileOverride()
                            // 指定生成的实体类名称
                            .convertFileName(entityName -> entityName + "Entity")
                            // 指定生成的service接口名称
                            .serviceBuilder().convertServiceFileName(entityName -> "IDao" + entityName + "Service")  
                             // 指定生成的serviceImpl的名称
                            .convertServiceImplFileName(entityName -> "Dao" + entityName + "Service");

                }).templateConfig(builder -> {
                    // 不生成Controller
                    builder.disable(TemplateType.CONTROLLER);
                });
        return generator;
    }

}

把这个类放在test目录下,需要的时候执行就可以了:
在这里插入图片描述
生成的类如下所示:


import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.sql.Timestamp;
import lombok.Getter;
import lombok.Setter;

/**
 * <p>
 * 账户表
 * </p>
 *
 * @author Auto Generator
 * @since 2022-08-19
 */
@Getter
@Setter
@TableName("account")
public class AccountEntity {

    @TableId(value = "user_id", type = IdType.ASSIGN_ID)
    private String userId;

    private String accountName;

    private String accountPassword;

    /**
     * 昵称
     */
    private String nickname;

    /**
     * 邮箱
     */
    private String email;

    /**
     * 手机号
     */
    private String telephone;

    /**
     * 用户真实姓名
     */
    private String realName;

    /**
     * 0, 女,1,男
     */
    private Byte gender;

    /**
     * 用户头像,记录是url后面的路径值,不包括域名
     */
    private String headIcon;

    /**
     * 活跃状态:0, 正常,1, 忙碌中
     */
    private Byte activeStatus;

    /**
     * 绑定的微信openId
     */
    private String wxOpenId;

    /**
     * 省
     */
    private String province;

    /**
     * 市
     */
    private String city;

    private String street;

    /**
     * 所属第一行业
     */
    private String firstIndustry;

    /**
     * 所属第二行业
     */
    private String secondIndustry;

    /**
     * 创建时间
     */
    private Timestamp createTime;
}
MyBatis-Plus是一个基于MyBatis的增强工具,它简化了在使用MyBatis时的开发流程。MyBatis-Plus提供了许多实用的功能,如代码生成器,分页插件,通用CRUD方法等。你提到的mybatis-plus-generator3.5.3.1是MyBatis-Plus的代码生成器版本MyBatis-Plus的代码生成器可以根据数据库表结构自动生成实体类、mapper接口以及mapper.xml文件等。通过配置相关参数,你可以灵活地生成符合项目需求的代码文件,极大地提高了开发效率。 如果你想使用MyBatis-Plus的代码生成器,你可以按照以下步骤操作: 1. 在项目中引入MyBatis-Plus依赖。你可以在项目的pom.xml(如果是Maven项目)或者build.gradle(如果是Gradle项目)文件中添加相应的依赖配置。 2. 配置数据库连接信息。在代码生成器的配置文件中,你需要提供数据库连接的相关信息,包括数据库URL、用户名、密码等。 3. 配置生成策略。你可以通过配置生成策略来指定需要生成哪些表的代码文件,以及生成的文件存放的路径等。 4. 运行代码生成器。在完成上述配置后,你可以执行代码生成器的主类,它会根据配置信息自动在指定目录生成相应的代码文件。 需要注意的是,虽然代码生成器可以极大地提高开发效率,但在使用过程中也需要谨慎操作。生成的代码文件通常需要根据实际需求进行一定的修改和调整,以确保其与项目的业务逻辑一致。 希望对你有所帮助!如果你有更多关于MyBatis-Plus或其他方面的问题,可以继续提问。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

wgslucky

各位都是我的衣食父母

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值