zoukankan      html  css  js  c++  java
  • 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;即可 

  • 相关阅读:
    mybatis源码(三)SqlSession执行mapper的过程上篇
    Mybatis源码(二)mybatis核心组件介绍
    Mybatis源码(一) 之SqlSession的创建
    设计模式的分类及其六大设计原则
    设计模式之桥接模式
    设计模式之解释器模式
    设计模式之享元模式
    hdu3652
    Codeforces Round #703 (div2)
    Educational Codeforces Round 104
  • 原文地址:https://www.cnblogs.com/wulm/p/9860726.html
Copyright © 2011-2022 走看看