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

本章节就到这里了。


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

查看所有标签

猜你喜欢:

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

数字乌托邦

数字乌托邦

尼古拉斯•卡尔 / 姜忠伟 / 中信前沿出版社 / 2018-5 / 69.00

当下,技术与我们的关系变得越来越紧密不可分割,特别是智能手机等设备的出现,带给整个人类社会一场彻底的变革。的确,智能手机上的各种应用程序让我们的工作生活无比便利:社交媒体让我们能够和他人实时保持联络并传输信息,不再受时间、地点的限制;搜索引擎通过精准的算法将我们所需要的信息整合推送至屏幕上,让我们毫不费力就看到自己想要的;地图软件为我们的出行提供了更多路线选择,甚至可以使用语音导航,帮助我们顺利到......一起来看看 《数字乌托邦》 这本书的介绍吧!

在线进制转换器
在线进制转换器

各进制数互转换器

html转js在线工具
html转js在线工具

html转js在线工具

RGB HSV 转换
RGB HSV 转换

RGB HSV 互转工具