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;即可