Mybatis generator 生成基于Lombok的实体类插件

Lombok

Lombok这里不做详细介绍,有兴趣的同学请移步:https://projectlombok.org/

Mybatis generator 插件

因目前项目中使用Mybatis且经常使用Lombok来简化java代码编写,而Mybatis generator生成的代码又是标准POJO,所以每次生成好的代码还要进行手动修改,太烦了。

程序猿的本质都是懒的,所以写了一个插件,一劳永逸。

import org.mybatis.generator.api.IntrospectedColumn;
import org.mybatis.generator.api.IntrospectedTable;
import org.mybatis.generator.api.PluginAdapter;
import org.mybatis.generator.api.dom.java.Interface;
import org.mybatis.generator.api.dom.java.Method;
import org.mybatis.generator.api.dom.java.TopLevelClass;

import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;

public class LombokPlugin extends PluginAdapter {

    public boolean validate(List<String> list) {
        return true;
    }

    @Override
    public boolean modelBaseRecordClassGenerated(TopLevelClass topLevelClass, IntrospectedTable introspectedTable) {
        topLevelClass.addImportedType("lombok.Getter");
        topLevelClass.addImportedType("lombok.Setter");
        topLevelClass.addImportedType("lombok.ToString");

        topLevelClass.addAnnotation("@Getter");
        topLevelClass.addAnnotation("@Setter");
        topLevelClass.addAnnotation("@ToString");

        topLevelClass.addJavaDocLine("/**");
        topLevelClass.addJavaDocLine("* Created by Mybatis Generator " + date2Str(new Date()));
        topLevelClass.addJavaDocLine("*/");

        return true;
    }

    @Override
    public boolean clientGenerated(Interface interfaze, TopLevelClass topLevelClass, IntrospectedTable introspectedTable) {
        interfaze.addJavaDocLine("/**");
        interfaze.addJavaDocLine("* Created by Mybatis Generator " + date2Str(new Date()));
        interfaze.addJavaDocLine("*/");
        return true;
    }

    @Override
    public boolean modelSetterMethodGenerated(Method method, TopLevelClass topLevelClass, IntrospectedColumn introspectedColumn, IntrospectedTable introspectedTable, ModelClassType modelClassType) {
        return false;
    }

    @Override
    public boolean modelGetterMethodGenerated(Method method, TopLevelClass topLevelClass, IntrospectedColumn introspectedColumn, IntrospectedTable introspectedTable, ModelClassType modelClassType) {
        return false;
    }

    private String date2Str(Date date) {
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd");
        return sdf.format(date);
    }
}

关于Mybatis generator的插件如何编写,请参考:http://generator.sturgeon.mopaas.com/reference/pluggingIn.html

使用方法

我是直接生成了一个jar,然后使用mybatis-generator-maven-plugin来生成代码的。 输入图片说明

配置文件中添加:

输入图片说明

转载于:https://my.oschina.net/u/942832/blog/821258

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
您好!对于自动生成实体类和mapper的问题,可以考虑使用MyBatis Generator插件来实现。MyBatis Generator是一个官方支持的代码生成工具,可以根据数据库表结构自动生成实体类和mapper接口。 以下是一些简单的步骤来使用MyBatis Generator插件生成实体类和mapper: 1. 首先,您需要在您的项目中引入MyBatis Generator插件的依赖。您可以在pom.xml文件(如果您使用Maven)或build.gradle文件(如果您使用Gradle)中添加相应的依赖。 2. 接下来,编写一个MyBatis Generator的配置文件(一般命名为generatorConfig.xml),用于定义生成实体类和mapper的规则。配置文件中包含了数据库连接信息、要生成的表、生成的目标包等信息。 3. 在配置文件中,您可以配置生成实体类的规则,例如是否使用Lombok注解、是否生成对应字段的getters和setters等。 4. 配置好generatorConfig.xml文件后,您可以执行MyBatis Generator插件生成实体类和mapper。一般情况下,可以通过命令行或者IDE中的插件来执行。 5. 执行成功后,您将在指定的目标包中看到生成实体类和mapper接口。这些文件将根据您在配置文件中定义的规则生成。 需要注意的是,使用MyBatis Generator插件生成实体类和mapper只是初始化的代码,您仍然需要根据需要进行调整和扩展。 希望以上信息对您有所帮助!如有更多问题,请继续提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值