Mybatis报错----result Map
来源:互联网 发布:java jquery ajax 编辑:程序博客网 时间:2024/05/19 02:18
每次搭建Mybatis环境和Spring整合的时候都会报这个错:java.lang.IllegalArgumentException: Result Maps collection already contains value for XXX这个错误。
搭建过程如下:
Spring Beans文件:
<!-- 配置包扫描 --><!-- 使用annotation 自动注册bean, 并保证@Required、@Autowired的属性被注入 --> <context:component-scan base-package="com.lgy"><context:exclude-filter type="annotation"expression="org.springframework.stereotype.Controller" /></context:component-scan> <!-- 使其注解生效 --><context:annotation-config /><!-- 加载数据源 --><import resource="datasource/data_source.xml"/><!-- 配置MyBatis SqlSessionFactory --><import resource="mybatis/my_batis.xml"/> <!-- 配置MyBatis事物通知 --><import resource="transmanager/transmanager.xml"/>
Mybatis文件:
<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans"xmlns:context="http://www.springframework.org/schema/context"xmlns:aop="http://www.springframework.org/schema/aop"xmlns:tx="http://www.springframework.org/schema/tx"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd"><!-- 配置MyBatis SqlSessionFactory --><bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"><property name="dataSource" ref="dataSource" /><property name="configLocation" value="classpath:myBatis-config.xml"></property><property name="mapperLocations" value="classpath:mapper/**/*Mapper.xml" /></bean><!-- 采用自动扫描包的形式来实例化dao层 --> <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"> <property name="basePackage" value="com.lgy.dao.**" /> </bean> </beans>
Mybatis core:
<?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><package name="com.lgy.entry"/></typeAliases></configuration>
用package配置别名,就是把该包下的所有类都配置了别名。
Dao:
import com.lgy.entry.UserInfo;import com.lgy.entry.base.UserInfoQuery;/** * 微信用户管理 * @author feng * */public interface UserInfoDao {/** * 增加用户信息 * @param userInfo */void addUserInfo(UserInfo userInfo);/** * 修改用户订阅状态信息 * @param userInfo */void updateUserInfoByOpenId(UserInfo userInfo);/** * 根据openId查找用户信息 */UserInfo findUserInfoByOpenId(String openId);/** * 查询所有用户信息 带分页条件 */List<UserInfo> finUserInfoList(UserInfoQuery userInfoQuery);/** * 获取所有的数量 * @param userInfoQuery * @return */Integer getCount(UserInfoQuery userInfoQuery);}
Mappler文件:
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.lgy.dao.UserInfoDao"> <resultMap type="UserInfo" id="userInfoRM"> <id column="id" property="id"/> <result column="open_id" property="openId" /> <result column="subscribe_status" property="subscribeStatus" /> </resultMap> <!-- Limiti SQL --><sql id="userInfoLimit"><if test="startRow != null and pageSize != null">limit #{startRow},#{pageSize}</if></sql> <!-- 插入一条userinfo记录 --> <insert id="addUserInfo" parameterType="UserInfo"> insert into weixin_user_info(id, openId, subscribe_status) values(null, #{openId}, #{subscribeStatus}); </insert> <!-- 根据openId查找用户信息 --> <update id="updateUserInfoByOpenId" parameterType="UserInfo"> update weixin_user_info set subscribe_status = #{subscribeStatus} where openId = #{openId} </update> <select id="findUserInfoByOpenId" parameterType="String" resultMap="userInfoRM"> select ui.id id, ui.openId open_id, ui.subscribe_status subscribe_statusfrom weixin_user_info uiwhere ui.openId = #{openId}; </select> <!-- 带分页查询所有 --> <select id="finUserInfoList" parameterType="UserInfoQuery" resultMap="userInfoRM"> select ui.id id, ui.openId open_id, ui.subscribe_status subscribe_statusfrom weixin_user_info ui<include refid="userInfoLimit" /> </select> <!-- 查询所有的条数 --> <select id="getCount" parameterType="UserInfoQuery" resultType="Integer">select count(1) from weixin_user_info</select></mapper>
配置文件都正确。这样就会出现 java.lang.IllegalArgumentException: Result Maps collection already contains value for XXX这个错误。
解决办法是:删除Mybatis.xml中的<mappers>标签所有内容。因为如果user-mapper.xml与namespace的接口在同一路径下,就不需要在mybaits.xml中再进行配置了,也无需进行扫描。
0 0
- Mybatis报错----result Map
- mybatis报Could not find result map java.lang.String
- mybatis报Could not find result map java.lang.Integer之类的错误
- MyBatis启动报错Result Maps collection already contains ....
- MyBatis报错:Result Maps collection already contains value for .....
- mybatis报错Result Maps collection already contains value for
- myibatis 报错 Could not find result map java.util.HashMap
- 已解决。。。mybatis 代码自动生成报错 Result Maps collection already contains value for BaseResultMap
- mybatis报错:Expected one result (or null) to be returned by selectOne(), but found: 20
- spring,mybatis整合报错Result Maps collection already contains value for ...BaseResultM
- mybatis 报错 Result Maps collection already contains value for BaseResultMap
- mybatis IncompleteElementException:Could not find result map java.lang.String
- Mybatis Could not find result map XXXX int
- mybatis IncompleteElementException:Could not find result map java.lang.String
- mybatis异常:Could not find result map java.lang.String
- mybatis报错(三)报错Result Maps collection does not contain value for java.lang.Integer解决方法
- Mybatis报错Could not find parameter map java.util.Map
- 报错:No result defined for action and result input
- Hibernate Restrictions常用限定条件
- gdb系列之三 GDB命令
- ios和安卓测试包发布网站http://fir.im的注册与常用功能
- .net framework、win系统、vs环境的支持关系
- 解释:arraylist<hashmap<string,string>>
- Mybatis报错----result Map
- 数据库 - 数据库角色
- R文件
- 与其他公司沟通合作
- LINQ TO ENTITY 查看编译后的SQL
- HTML中的常用标签
- Intent
- hbase与solr的架构整合
- Android开源UI库与工具库推荐