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