mybatis generator 覆盖xml文件
mybatis generator 默认采用追加方式生成,所以我们如果要重新生成代码的时候那么要先删除原来的文件。
解决办法:
1:创建一个自定义补丁类。
OverwriteXmlPlugin.java
package com.my.common.generator.myplugins;import java.util.List;
import org.mybatis.generator.api.GeneratedXmlFile;
import org.mybatis.generator.api.IntrospectedTable;
import org.mybatis.generator.api.PluginAdapter;/**
@author wulm
@date 2018 年 10 月 26 日 下午 7:39:45
@version 1.0.0
*/
public class OverwriteXmlPlugin extends PluginAdapter {@Override
public boolean validate(List<String> warnings) {
return true;
}@Override
public boolean sqlMapGenerated(GeneratedXmlFile sqlMap, IntrospectedTable introspectedTable) {
sqlMap.setMergeable(false);
return super.sqlMapGenerated(sqlMap, introspectedTable);
}}
说明:原理是重写 sqlMapGenerated 方法。设置 sqlMap.setMergeable(false);。默认情况下 isMergeable 为 true,所以在这里设置为 false。
2:在 generator.xml 中的 context 节点下加上
<!-- 覆盖 xml 文件 -->
<plugin
type="com.my.common.generator.myplugins.OverwriteXmlPlugin" />
当你再次执行的时候就会覆盖原来的 xml 了。
另外如果想要覆盖原来的 java 文件,建议使用官网给的 java 代码来生成代码(官网:http://www.mybatis.org/generator/running/runningWithJava.html(使用 XML 配置文件从 Java 运行 MBG))
代码里面设置 boolean overwrite = true; 即可