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>
直接写上固定值。
然后运行,搞定!