mybatisGenerater生成mapper重复

使用mybatis-generater生成mapper,但是生成的mapper一直有重复的。比如会生成两个下面的resultMap,并且每个方法会生成两个。

<resultMap extends="BaseResultMap" id="ResultMapWithBLOBs" type="com.roczhang.mall.mbg.model.PmsBrand">
  <result column="brand_story" jdbcType="LONGVARCHAR" property="brandStory" />
</resultMap>

pom

<!-- MyBatis 生成器 -->
<dependency>
    <groupId>org.mybatis.generator</groupId>
    <artifactId>mybatis-generator-core</artifactId>
    <version>1.3.7</version>
<?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">
<generatorConfiguration>
    <!--  配置文件的名字  -->
    <properties resource="generator.properties"/>
    <context id="MySqlContext" targetRuntime="MyBatis3" defaultModelType="flat">
        <property name="beginningDelimiter" value="`"/>
        <property name="endingDelimiter" value="`"/>
        <property name="javaFileEncoding" value="UTF-8"/>
        <!-- 为模型生成序列化方法-->
        <plugin type="org.mybatis.generator.plugins.SerializablePlugin"/>
        <!--   为java模型生成一个toString方法     -->
        <plugin type="org.mybatis.generator.plugins.ToStringPlugin"/>
        <!--   自定义生成model的代码注释     -->
        <commentGenerator type="com.roczhang.mall.mbg.CommentGenerator">
            <property name="suppressAllComments" value="true"/>
            <property name="suppressDate" value="true"/>
            <property name="addRemarkComments" value="true"/>
        </commentGenerator>
        <!--   配置数据库连接     -->
        <jdbcConnection driverClass="${jdbc.driverClass}"
                        connectionURL="${jdbc.connectionURL}" 
                        userId="${jdbc.userId}"
                        password="${jdbc.password}">
            <!--解决mysql驱动升级到8.0后不生成指定数据库代码的问题-->
            <property name="nullCatalogMeansCurrent" value="true" />
        </jdbcConnection>
        <!--  指定生成model的路径      -->
        <javaModelGenerator targetPackage="com.roczhang.mall.mbg.model" targetProject="src/main/java"/>
        <!--   指定生成mapper.xml的路径     -->
        <sqlMapGenerator targetPackage="com.roczhang.mall.mbg.mapper" targetProject="src/main/resources"/>
        <!--   指定生成mapper接口的路径     -->
        <javaClientGenerator type="XMLMAPPER" targetPackage="com.roczhang.mall.mbg.mapper" targetProject="src/main/java"/>
        <!--    生成全部表tableName设为%    -->
        <table tableName="pms_brand">
            <generatedKey column="id" sqlStatement="MySql" identity="true"/>
        </table>
    </context>
</generatorConfiguration>

根据官方的解释:使用mybatis-generator 1.3.7版本以上的并且添加下面的proper即可。

<!--解决mysql驱动升级到8.0后不生成指定数据库代码的问题-->
<property name="nullCatalogMeansCurrent" value="true" />

但是然并软。

我百度了一下查找解决方案。发现了这篇文章

https://blog.csdn.net/Cgh_Baby/article/details/93165152

我试了一下,由于我的数据库连接是从配置文件取值的,然后我把配置文件改成了这个样子

<jdbcConnection driverClass="${jdbc.driverClass}"
                connectionURL="${jdbc.connectionURL}"
                userId="root"
                password="password">

表的配置

<table tableName="pms_brand" schema="root" catalog="mall">
    <generatedKey column="id" sqlStatement="MySql" identity="true"/>
</table>

直接写上固定值。

然后运行,搞定!

posted @ 2021-09-14 10:30  dlage  阅读(16)  评论(0编辑  收藏  举报  来源