在使用MyBatis实现数据持久层过程中,定义了如下一个<select>
<?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.talkweb.mapper.lead.LeadKPIDataMapper">
<resultMap type="com.talkweb.domains.lead.KPIDataVO" id="res_kpiDataVO">
<result property="tagId" column="TAG_ID"/>
<result property="tagName" column="CAL_NAME"/>
<result property="tagValue" column="TAG_VALUE"/>
<result property="tagl1mValue" column="TAG_L1M_VALUE"/>
<result property="tagl1yValue" column="TAG_L1Y_VALUE"/>
<result property="risL1mRat" column="RIS_L1M_RAT"/>
<result property="risL1yRat" column="RIS_L1Y_RAT"/>
<result property="tagNameTip" column="CAL_BUS_DESC"/>
<result property="date" column="TIME_ID"/>
<result property="areaId" column="AREA_ID"/>
<result property="cntyId" column="CNTY_ID"/>
<result property="townId" column="TOWN_ID"/>
</resultMap>
<select id="findKPIData" resultMap="res_kpiDataVO">
SELECT K.TAG_ID,T.CAL_NAME FROM SHW.RPT_MN_TAG_DFLT_FEE_MM AS K INNER JOIN WI.MN_CAL_LIST_DST AS T
ON K.TAG_ID=T.TAG_ID AND K.TIME_ID=20120515 AND K.CNTY_ID='E398' WITH UR
</select>
</mapper>
对应的接口文件为LeadKPIDataMapper .java:
public interface LeadKPIDataMapper {
public List<KPIDataVO> findKPIData();
}
在测试过程中,系统总是出现如下异常:
java.lang.IllegalArgumentException: Mapped Statements collection does not contain value for com.talkweb.mapper.lead.LeadKPIDataMapper.findKPIData
at org.apache.ibatis.session.Configuration$StrictMap.get(Configuration.java:594)
at org.apache.ibatis.session.Configuration.getMappedStatement(Configuration.java:436)
at org.apache.ibatis.session.Configuration.getMappedStatement(Configuration.java:428)
at org.apache.ibatis.binding.MapperMethod.setupCommandType(MapperMethod.java:188)
at org.apache.ibatis.binding.MapperMethod.<init>(MapperMethod.java:51)
at org.apache.ibatis.binding.MapperProxy.invoke(MapperProxy.java:37)
经过排查,解决上述异常的过程如下:
1.确定xml文件中<mapper namespace=""/>中的namespace是否路径正确(在此案例中namespace与实际路径一致),由于namespace不同会引发此问题
2.确定xml文件的名称是否与接口类的名称保持一致,在上例中出现问题就是因为不小心将xml文件命名为LendKPIDataMapper.xml,而接口文件为:LeadKPIDataMapper.java。一字之差导致异常的发生。
总结:细心,仔细,认真是程序开发之根本。
分享到:
相关推荐
使用通用插件直接生成实体类(包括Example条件类),接口,以及映射文件
mybatis 多层级collection嵌套
mybatis中mapper文件resultMap中collection和association的使用,参考地址:https://blog.csdn.net/zhizhuodewo6/article/details/82863452
mybatis 一对多collection的使用 在mybatis如何进行一对多的多表查询呢?这里用一个简单的例子说明
上篇文章说过,mybatis在执行sql语句的时候,通过id获取configuration中mappedStatements的 MappedStatement对象,每个MappedStatement对象对应着增删改查语句,也就是我们配置文件中增删改查标签配置或是注解@...
NULL 博文链接:https://jaychang.iteye.com/blog/2357143
mybatis中文离线文档
主要介绍了Mybatis中Collection集合标签的使用详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
MyBatis 中文注释源码,直接导入eclipse工程即可,源码中加了中文注释,可以学习研究底层,成就自我成长!
jsq+mybatis+mysql中文乱码的详细方案。
采用springmvc+mybatis,搭建部分大致跟网上其他资料差不多,唯一不同的加入了统一错误处理,为了方便开发人员开发,所有错误码用一张表存在数据库中,然后由应用将整表缓存,缓存采用的spring自带的cache,开发中...
mybatis_3.5.9官方中文文档pdf
主要介绍了详解mybatis中association和collection的column传入多个参数问题,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
MyBatis3官方中文文档高清 MyBatis3官方中文文档高清 MyBatis3官方中文文档高清 MyBatis3官方中文文档高清
mybatis 报空值异常及其解决办法
主要介绍了mybatis连接MySQL8出现的问题解决方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
mybatis中文帮助文档和应用jar包.
Mybatis API中文帮助文档 Mybatis API中文帮助文档 Mybatis API中文帮助文档 Mybatis API中文帮助文档 Mybatis API中文帮助文档 Mybatis API中文帮助文档 Mybatis API中文帮助文档 Mybatis API中文帮助文档 Mybatis ...
mybatis generator默认生成的注释不包含英文,这个是修复过的。详情使用请参考我的博客。https://my.oschina.net/kkrgwbj/blog/748591
mybatis中,sqlserver分页