给mybatis-generator插件自定义功能

本文介绍了如何为mybatis-generator创建一个自定义的maven项目,使其具备额外功能。首先,创建一个maven项目,并在main/java目录下创建自定义包和Java类,继承PluginAdapter。接着,通过maven的install命令将项目打包成jar。最后,在mybatis-generator的配置文件中引用生成的jar包,实现自定义注解添加功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

给mybatis-generator插件自定义功能

1. 创建maven项目

由于使用的是maven的mybatis-generator插件, 所以要给它自定义功能的话也需要创建为maven项目, 其实本质上是让mybatis-generator插件去依赖我们写好的maven项目并打包为jar文件的包,在mybatis的官网中也有一些已经实现好的插件供开发者使用, 并作为参考创建自己的一些插件。创建maven项目就不再详述,在main/java文件夹下创建自己的包并创建一个java类让其继承PluginAdapter, 在此之前需要在pom文件中依赖mabatis-core包

package com.chrm.mybatis.generator.plugins;

import java.util.List;

import org.mybatis.generator.api.IntrospectedTable;
import org.mybatis.generator.api.PluginAdapter;
import org.mybatis.generator.api.IntrospectedTable.TargetRuntime;
import org.mybatis.generator.api.dom.java.FullyQualifiedJavaType;
import org.mybatis.generator.api.dom.java.Interface;

public class RepositoryPlugin extends PluginAdapter {

    @Override
    public boolean validate(List<String> warnings) {
        return true;
    }

    @Override
    public boolean clientGenerated(Interface interfaze, IntrospectedTable introspectedTable) {

        if (introspectedTable.getTargetRuntime() == TargetRuntime.MYBATIS3) {
            // don't need to do this for MYBATIS3_DSQL as that runtime already adds this annotation 
            interfaze.addImportedType(
                    new FullyQualifiedJavaType("org.springframework.stereotype.Repository")); //$NON-NLS-1$
            interfaze.addAnnotation("@Repository"); //$NON-NLS-1$
        }
        return true;
    }
}

这个类是参考mybatis-core下的插件库中的一种, 它的作用是在生成的xxdao,java文件添加一个@Repository注解并import其依赖的包, 这样可以方便开发的时候不必去生成的xxdao.java文件一个个添加注解。

2. Install项目

清理target文件夹之后可以开始打包, 使用集成的install命令, 一般ide的maven插件都会集成一个完整的maven命令, 直接使用即可, 如图:
在这里插入图片描述

3. 添加依赖

等待install命令执行结束, 就可以在mybatis-generator插件中引用jar包了

<plugin>
        <groupId>org.mybatis.generator</groupId>
        <artifactId>mybatis-generator-maven-plugin</artifactId>
        <version>1.4.0</version>
        <configuration>
          <verbose>true</verbose>
          <overwrite>true</overwrite>
          <configurationFile>src/main/resources/generatorConfig.xml</configurationFile>
        </configuration>
        <dependencies>
          <dependency>
            <groupId>com.chrm</groupId>
            <artifactId>mybatis-generator-lombok-plugin</artifactId>
            <version>1.0-SNAPSHOT</version>
          </dependency>
          <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>8.0.21</version>
          </dependency>
        </dependencies>
      </plugin>

然后需要在配置文件中让mybatis-generator引用jar包

<generatorConfiguration>
    <context id="mysqlTables" targetRuntime="MyBatis3">
        <!-- 分页相关 -->
		<plugin type="org.mybatis.generator.plugins.RowBoundsPlugin" />
		<!-- 带上序列化接口 -->
        <plugin type="org.mybatis.generator.plugins.SerializablePlugin" />
        <plugin type="com.chrm.mybatis.generator.plugins.LombokPlugin" >
			<property name="hasLombok" value="true"/>
        </plugin>
        <plugin type="com.chrm.mybatis.generator.plugins.RepositoryPlugin" />
        ...
    </context>
</generatorConfiguration>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值