内容简介:很多项目会考虑使用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"/> ...
本章节就到这里了。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
XML、JSON 在线转换
在线XML、JSON转换工具
HEX CMYK 转换工具
HEX CMYK 互转工具