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"/>
...

本章节就到这里了。


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

查看所有标签

猜你喜欢:

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

数据结构与算法分析

数据结构与算法分析

韦斯(Mark Allen Weiss) / 机械工业出版社 / 2010-8 / 45.00元

《数据结构与算法分析:C语言描述》曾被评为20世纪顶尖的30部计算机著作之一,作者在数据结构和算法分析方面卓有建树,他的数据结构和算法分析的著作尤其畅销,并受到广泛好评,已被世界500余所大学选作教材。 在《数据结构与算法分析:C语言描述》中,作者精炼并强化了他对算法和数据结构方面创新的处理方法。通过C程序的实现,着重阐述了抽象数据类型的概念,并对算法的效率、性能和运行时间进行了分析。 ......一起来看看 《数据结构与算法分析》 这本书的介绍吧!

XML 在线格式化
XML 在线格式化

在线 XML 格式化压缩工具

HSV CMYK 转换工具
HSV CMYK 转换工具

HSV CMYK互换工具