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. redis 在java中的使用

    1.首先下载jar包放到你的工程中 2.练习 package com.jianyuan.redisTest; import java.util.Iterator;import java.util.Li ...

  2. 下落的树叶 (The Falling Leaves UVA - 699)

    题目描述: 原题:https://vjudge.net/problem/UVA-699 题目思路: 1.依旧二叉树的DFS 2.建树过程中开个数组统计 //紫书源代码WA AC代码: #include ...

  3. 【20180807模拟测试】T2 box

    [问题描述] 有个桌子长 R 宽 C,被分为 R*C 个小方格.其中,一些方格上有箱子,一些方格上有按 钮,一些方格上有障碍物,一些方格上是空地.现在有个任务,需要把所有箱子推到这些按 钮上面.箱子有 ...

  4. opencv-学习笔记(2)

    opencv-学习笔记(2) 这章记录了 获取像素点,改变像素点 获取图像的属性(行,列,通道数,数据类型) roi感应区 拆分以及合并图像通道 边缘扩充 opencv获取像素点,改变像素点 ---- ...

  5. Dictionary tabPage使用

    public override bool AccptChange() { //if (oldvalue == null || oldvalue.Count <= 0) //{ // return ...

  6. docker最佳实践-----美团点评的分享

    美团点评容器平台简介 本文介绍美团点评的Docker容器集群管理平台(以下简称“容器平台”).该平台始于2015年,是基于美团云的基础架构和组件而开发的Docker容器集群管理平台.目前该平台为美团点 ...

  7. 硬件原理图Checklist检查表(通用版)

    类别 描述 检视规则 原理图需要进行检视,提交集体检视是需要完成自检,确保没有低级问题. 检视规则 原理图要和公司团队和可以邀请的专家一起进行检视. 检视规则 第一次原理图发出进行集体检视后所有的修改 ...

  8. 《JavaScript 高级程序设计》总结

    一.JS基本概念 1.命名规则 变量名区分大小写(test和Test是两个不同的变量名),标识符采用驼峰命名格式,即:第一个字母小写,剩下的每个有意义的单词首字母大写: 标识符第一个字符必须是以字母. ...

  9. Where to go from here

    Did you get through all of that content? Congratulations! You've learnt the fundamentals of algorith ...

  10. <Effective C++>读书摘要--Inheritance and Object-Oriented Design<一>

    1.Furthermore, I explain what the different features in C++ really mean — what you are really expres ...