Result Maps collection already contains value for xxxMapper.BaseResultMap错误解决办法
一、问题描述
今天在做项目时,遇到一个错误:“Result Maps collection already contains value for com.xxx.dao.tb_userMapper.BaseResultMap”

最简单的方法就是将逆向工程在eclipse中移除掉,然后重新import这个逆向工程,然后重新生成mapper文件。

因为如果之前生成过一张相同的表,逆向工程会再生成,导致内容重复,报该表的错误。
二、原因分析
    Mybatis-Generator在生成Mapper.xml文件时,会在原来基础上再生成,导致内容重复。
三、解决办法
(1)改造Mybatis-generator插件
    参考mybatis-generator重新生成代码时的SQL映射文件覆盖
(2)将手写xml文件与自动生成xml文件分离
    手写文件放在src/main/resources/mybatis目录中
    生成文件放在src/main/resources/mybatis-generator目录中,这样便于在生成之前手动删除。
    generatorConfig.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" >
<generatorConfiguration>
    <classPathEntry
        location="D:\Java\maven\repository\mysql\mysql-connector-java\5.1.31\mysql-connector-java-5.1.31.jar" />
    <context id="aisSnsTables" targetRuntime="MyBatis3">
        <plugin type="org.mybatis.generator.plugins.SerializablePlugin" />
        <plugin type="org.mybatis.generator.plugins.EqualsHashCodePlugin" />
        <plugin type="org.mybatis.generator.plugins.ToStringPlugin" />
        <!-- 抑制生成代码的注释 -->
        <commentGenerator>
            <property name="suppressAllComments" value="true" />
        </commentGenerator>
        <jdbcConnection driverClass="com.mysql.jdbc.Driver"
            connectionURL="jdbc:mysql://localhost:3306/liying" userId="root"
            password="root@" />
        <javaModelGenerator targetPackage="com.uni2uni.model"
            targetProject="src/main/java" />
        <sqlMapGenerator targetPackage="/"
            targetProject="src/main/resources/mybatis-generator" />
        <javaClientGenerator targetPackage="com.uni2uni.dao"
            targetProject="src/main/java" type="XMLMAPPER">
            <property name="enableSubPackages" value="true" />
        </javaClientGenerator>
        <table schema="liying" tableName="tb_user" domainObjectName="tb_user" />
        <table schema="liying" tableName="tb_admin" domainObjectName="tb_admin" />
        <table schema="liying" tableName="tb_role" domainObjectName="tb_role" />
        <table schema="liying" tableName="tb_resource" domainObjectName="tb_resource" />
        <table schema="liying" tableName="tb_user_role" domainObjectName="tb_user_role" />
        <table schema="liying" tableName="tb_role_resource" domainObjectName="tb_role_resource" />
        <table schema="liying" tableName="tb_category" domainObjectName="tb_category"/>
        <table schema="liying" tableName="tb_shop" domainObjectName="tb_shop"/>
    </context>
</generatorConfiguration>

mybatis.xml配置:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
    <typeAliases>
        <typeAlias alias="user" type="com.uni2uni.model.tb_user" />
        <typeAlias alias="admin" type="com.uni2uni.model.tb_admin" />
        <typeAlias alias="role" type="com.uni2uni.model.tb_role" />
        <typeAlias alias="resource" type="com.uni2uni.model.tb_resource" />
        <typeAlias alias="category" type="com.uni2uni.model.tb_category" />
        <typeAlias alias="shop" type="com.uni2uni.model.tb_shop" />
    </typeAliases>
    <plugins>
        <plugin
            interceptor="com.github.miemiedev.mybatis.paginator.OffsetLimitInterceptor">
            <property name="dialectClass"
                value="com.github.miemiedev.mybatis.paginator.dialect.MySQLDialect" />
        </plugin>
    </plugins>
    <mappers>
        <mapper resource="mybatis/tb_user.xml" />
        <mapper resource="mybatis-generator/tb_userMapper.xml" />
        <mapper resource="mybatis/tb_admin.xml" />
        <mapper resource="mybatis-generator/tb_adminMapper.xml" />
        <mapper resource="mybatis/tb_role.xml" />
        <mapper resource="mybatis-generator/tb_roleMapper.xml" />
        <mapper resource="mybatis/tb_resource.xml" />
        <mapper resource="mybatis-generator/tb_resourceMapper.xml" />
        <mapper resource="mybatis/tb_user_role.xml" />
        <mapper resource="mybatis-generator/tb_user_roleMapper.xml" />
        <mapper resource="mybatis/tb_role_resource.xml" />
        <mapper resource="mybatis-generator/tb_role_resourceMapper.xml" />
        <mapper resource="mybatis/tb_category.xml" />
        <mapper resource="mybatis-generator/tb_categoryMapper.xml" />
        <mapper resource="mybatis/tb_shop.xml" />
        <mapper resource="mybatis-generator/tb_shopMapper.xml" />
    </mappers>

</configuration>

mybatis逆向工程生成mapper报错的更多相关文章

  1. MyBatis逆向工程中domainObjectRenamingRule报错或无效

    使用domainObjectRenamingRule报错 在使用MyBatis逆向工程时报错如下: org.mybatis.generator.exception.XMLParserException ...

  2. Mybatis逆向工程生成po、mapper接口、mapper.xml

    Mybatis逆向工程生成po.mapper接口.mapper.xml 一.新建一个maven工程 请查看我的另一篇博客:<使用idea创建一个maven工程> 二.引入所需依赖 需要my ...

  3. mybatis 映射生成mapper和pojo ---逆向工程的使用过程

    使用逆向工程生成mapper和pojo 2. 新建一个项目,随便叫什么 3.导入mybatis-generator-core .mybatis.mybatis-spring.log4j等jar 4.在 ...

  4. MyBatis逆向工程生成配置 generator (生成pojo、mapper.xml、mapper.java)

    MyBatis逆向工程生成 mybatis需要程序员自己编写sql语句,mybatis官方提供逆向工程,可以针对单表自动生成mybatis执行所需要的代码(mapper.java.mapper.xml ...

  5. 使用mybatis-generator插件结合tk.mybatis自动生成mapper二三事

    本篇文章将介绍使用spring boot框架,引入mybatis-generator插件,结合tk.mybatis自动生成Mapper和Entity的一整套流程,其中包括最重要的踩坑与填坑.     ...

  6. MyBatis逆向工程生成的Example类的方法总结

    很早之前就在项目开发中多次使用MyBatis逆向工程生成的Example类,但一直没有对其下的方法做一个简单的总结,现总结如下:一.mapper接口中的方法解析mapper接口中的部分常用方法及功能如 ...

  7. 使用mybatis-generator插件结合tk.mybatis自动生成mapper

    本篇文章将介绍使用spring boot框架,引入mybatis-generator插件,结合tk.mybatis自动生成Mapper和Entity的一整套流程,其中包括最重要的踩坑与填坑.     ...

  8. idea的service注入mapper报错

    一.问题 idea的java项目中,service类中注入mapper报错 二.解决 方法1 在mapper类上加上  @Repository 注解即可,当然不加也行,程序也不回报错,是idea的误报 ...

  9. 用itext生成PDF报错:Font 'STSong-Light1' with 'UniGB-UCS2-H' is not recognized.

    用itext生成PDF报错,加上try catch捕获到异常是 BaseFont bFont = BaseFont.createFont("STSong-Light1", &quo ...

随机推荐

  1. a链接传参的方法

    //获取分案编号 var hrefVal=window.location.href.split("?")[1]; //得到id=楼主 //console.log(hrefVal+& ...

  2. 8月leetcode刷题总结

    刷题链接:https://leetcode-cn.com/explore/ 根据leetcode的探索栏目,八月份一直在上面进行刷题.发现算法题真的好难,真-计算机思维. 核心是将现实问题转化为计算机 ...

  3. 373. Partition Array by Odd and Even【LintCode java】

    Description Partition an integers array into odd number first and even number second. Example Given  ...

  4. 【转】unity3d 资源文件从MAX或者MAYA中导出的注意事项

    转自游戏开发主席   1.首先,Unity3d 中,导出带动画的资源有2种导出方式可以选择:    1) 导出资源时,只导出一个文件,保留模型,骨骼和所有的动作帧(把所有的动作,比如idle,atta ...

  5. 官方文档 恢复备份指南二 Getting Started with RMAN

    本章对RMAN进行基本的熟悉和了解   1.Overview of the RMAN Environment    RMAN运行时需要的最小环境:      target database       ...

  6. Scrum 冲刺博客,项目总结

    1.各个成员在 Alpha 阶段认领的任务 数据库环境的搭建,连接数据库:张陈东芳 数据库语句sql语句:张陈东芳 商品实体类的实现:吴敏烽 获取所有商品信息的实现:吴敏烽 根据商品编号获得商品资料: ...

  7. node必学的Hello World实现--服务器实现

    node是JavaScript运行在后端的一种实现.而后端语言,不管是php,java都需要一个服务器才能跑起来,node如是. node的服务器较php而言,少了单独安装服务器的步骤,node的服务 ...

  8. python 爬虫 伪装

    #coding=utf-8 import requests def requests_view(response): import webbrowser requests_url = response ...

  9. 【Redis】- 安装为windows服务

    1.安装redis服务 echo install redis-server redis-server.exe --service-install redis.windows.conf --loglev ...

  10. java 堆和栈的区别

    1,在栈中存放的是基本类型变量和对象的引用变量,当一段代码定义一个变量时,java 就在栈内为这个变量分配内存空间,当超过变量的作用域时,java会自动回收分配的内存. 局部变量在栈内存 2,堆内存放 ...