MybatisGenerator插件开发一【清除SqlMap文件】

栏目: 数据库 · 发布时间: 5年前

内容简介:很多项目会考虑使用Mybatis,如果使用了的话本章节我们先来写一个最简单的清空SqlMap文件的插件。由于默认的生成SqlMap文件的方式是append,当要再次执行MybatisGenerator命令时,需要把之前生成的SqlMap文件删除,这对开发者是很不友好的。一般我会选择新建一个项目来专门放插件,这一篇,把需要的依赖列出来,后面的篇章就不赘述了。本人是新建的一个标准的maven项目,所以依赖以maven配置的方式贴出来:

很多项目会考虑使用Mybatis,如果使用了的话 MybatisGenerator 将会是个很好的选择。它会帮我们自动生成Mapper、Entity、SqlMap文件,在开发中能省很多事。然而MybatisGenerator只生成了为数不多的几个通用方法,没办法满足实际项目中多种多样的业务模型。庆幸的是,它提供自定义插件的功能,这就给我们开启了一扇大门。本人在项目中积累了几个比较常用的插件,本系列文章就一一来分享下。本人近期的项目中使用的都是Mysql,所以,自定义插件生成的 SQL 方言也都是只针对 Mysql 的。

清空SqlMap文件

本章节我们先来写一个最简单的清空SqlMap文件的插件。由于默认的生成SqlMap文件的方式是append,当要再次执行MybatisGenerator命令时,需要把之前生成的SqlMap文件删除,这对开发者是很不友好的。一般我会选择新建一个项目来专门放插件,这一篇,把需要的依赖列出来,后面的篇章就不赘述了。

依赖

本人是新建的一个标准的maven项目,所以依赖以maven配置的方式贴出来:

...
<properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
    <java.version>11</java.version>
</properties>

<dependencies>
    <dependency>
        <groupId>org.mybatis.generator</groupId>
        <artifactId>mybatis-generator-core</artifactId>
        <version>1.3.7</version>
        <!-- 依赖的项目已经有该包了,本项目只要编译就行 -->
        <scope>provided</scope>
    </dependency>
</dependencies>

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <configuration>
                <source>${java.version}</source>
                <target>${java.version}</target>
                <encoding>UTF-8</encoding>
            </configuration>
        </plugin>
    </plugins>
</build>
...

只需要上面那一个依赖就可以了,也不需要其它什么配置。

插件源码

插件源码也很简单,如下:

import org.mybatis.generator.api.GeneratedXmlFile;
import org.mybatis.generator.api.IntrospectedTable;
import org.mybatis.generator.api.PluginAdapter;

import java.io.File;
import java.util.List;

public class DeleteSqlMapPluginextends PluginAdapter{
    @Override
    public boolean validate(List<String> list){
        return true;
    }

    @Override
    public boolean sqlMapGenerated(GeneratedXmlFile sqlMap, IntrospectedTable introspectedTable){
        String sqlMapPath = sqlMap.getTargetProject() +
                File.separator +
                sqlMap.getTargetPackage().replaceAll("\\.", File.separator) +
                File.separator + sqlMap.getFileName();
        File sqlMapFile = new File(sqlMapPath);
        sqlMapFile.delete();

        return true;
    }
}

这两个方法还算一目了然, validate 方法表示插件是否生效, sqlMapGenerated 表示在生成SqlMap文件时要处理的逻辑,其过程就是拿到SqlMap的文件引用,然后执行删除操作。

使用

使用就非常简单了,直接在使用方的配置文件中引用就行了:

...
  <plugintype="cn.didadu.plugin.mybatis.DeleteSqlMapPlugin"/>
...

本章节就到这里了。


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

计算机网络(第4版)

计算机网络(第4版)

[美] James F. Kurose、[美] Keith W. Ross / 陈鸣 / 机械工业出版社 / 2009-11 / 66.00元

本书采用了独创的自顶向下方法,即从应用层开始沿协议栈向下讲解计算机网络的基本原理,强调应用层范例和应用编程接口,内容深入浅出,注重教学方法,理论与实践相结合。第3版的内容相应更新并反映了网络领域的最新进展,如增加了无线和移动网络一章,扩充了对等网络、BGP、MPLS、网络安全、广播选路和因特网编址及转发方面的材料;还增加了一套实用的实验,并修订了习题。本书适合作为计算机、电子、通信工程相关专业的本......一起来看看 《计算机网络(第4版)》 这本书的介绍吧!

XML、JSON 在线转换
XML、JSON 在线转换

在线XML、JSON转换工具

Markdown 在线编辑器
Markdown 在线编辑器

Markdown 在线编辑器

UNIX 时间戳转换
UNIX 时间戳转换

UNIX 时间戳转换