MyBatis generator配置 overwrite 文件覆盖失效

Posted lihuajie

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MyBatis generator配置 overwrite 文件覆盖失效相关的知识,希望对你有一定的参考价值。

工具:IDEA、jdk1.8、mysql

底部有解决方法!

pom.xml配置

<plugins>
      <!--Mybatis自动代码插入-->
      <plugin>
        <groupId>org.mybatis.generator</groupId>
        <artifactId>mybatis-generator-maven-plugin</artifactId>
        <version>1.3.7</version>
        <configuration>
          <!--允许移动生成的文件-->
          <verbose>true</verbose>
          <!--允许覆盖生成的文件-->
          <overwrite>true</overwrite>
        </configuration>
      </plugin>
    </plugins>

generator.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE generatorConfiguration
        PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN"
        "http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd">
<!--generator配置详解:https://blog.csdn.net/zhaoyachao123/article/details/78961737-->

<generatorConfiguration>
    <!--导入属性配置-->
    <properties resource="generator.properties"/>

    <classPathEntry location="${driverLocalhost}"/>
    <context id="Mysql" defaultModelType="flat">
        <!--覆盖生成XML文件 generator1.3.7版本-->
        <plugin type="org.mybatis.generator.plugins.UnmergeableXmlMappersPlugin"></plugin>
        <!--注释-->
        <commentGenerator>
            <property name="suppressAllComments" value="true"/><!--是否取消注释-->
            <property name="suppressDate" value="true"/><!--是否生成注释代时间戳-->
        </commentGenerator>


        <jdbcConnection driverClass="${driver}"
                        connectionURL="${url}"
                        userId="${username}"
                        password="${password}"/>
        <!--类型转换-->
        <javaTypeResolver>
            <!--是否使用bigDecimal,false可自动转化以下类型(Long,Integer,Short,etc.)-->
            <property name="forceBigDecimals" value="false"/>
        </javaTypeResolver>

        <javaModelGenerator targetPackage="${modelPackage}" targetProject="${modelProject}" />
        <sqlMapGenerator targetPackage="${sqlPackage}" targetProject="${sqlProject}" />
        <javaClientGenerator targetPackage="${mapperPackage}" targetProject="${mapperProject}" type="XMLMAPPER"/>

        <!--如果需要通配所有表 tableName 直接用sql的通配符 %即可-->
        <!--enableCountByExample(默认true):MyBatis3Simple为false,指定是否生成动态查询总条数语句(用于分页的总条数查询);-->
        <!--enableUpdateByExample(默认true):MyBatis3Simple为false,指定是否生成动态修改语句(只修改对象中不为空的属性);-->
        <!--enableDeleteByExample(默认true):MyBatis3Simple为false,指定是否生成动态删除语句;-->
        <!--enableSelectByExample(默认true):MyBatis3Simple为false,指定是否生成动态查询语句;-->
        <table schema="" tableName="%" enableCountByExample="false"
                enableUpdateByExample="false" enableDeleteByExample="false"
                enableSelectByExample="false" selectByExampleQueryId="false"/>

    </context>

</generatorConfiguration>
generator.properties
driverLocalhost = E:/Maven_Repo/mysql/mysql-connector-java/5.1.45/mysql-connector-java-5.1.45.jar

driver = com.mysql.jdbc.Driver url = jdbc:mysql://localhost:3306/database?useUnicode=true&characterEncoding=utf-8 username=root password=****** #entity 包名和 java目录 modelPackage=com.stemCell.entity modelProject=src/main/java #mapper包名 和resources目录 sqlPackage=mapper sqlProject=src/main/resources #dao包名和 java目录 mapperPackage=com.stemCell.dao mapperProject=src/main/java #测试时使用,生成message表 table=message

解决方案:

①:mybatis-generator-maven-plugin版本改为1.3.7(个人试用过1.3.2和1.3.5均无法解决这问题)
②:在generatorConfig.xml中的<context>下添加:
<plugin type="org.mybatis.generator.plugins.UnmergeableXmlMappersPlugin"></plugin>

如果有更好的解决方法,欢迎大佬们留言。

以上是关于MyBatis generator配置 overwrite 文件覆盖失效的主要内容,如果未能解决你的问题,请参考以下文章

Mybatis Generator最完整配置详解[mybatis代码自动生成配置]

mybatis generator配置文件

如何利用mybatis-generator生成配置文件

mybatis generator配置

MyBatis三剑客之MyBatis_Generator的配置与使用

Mybatis Generator最完整配置详解