java.lang.IllegalArgumentException: Mapped Statements collection does not contai

本文详细解析了在使用MyBatis框架过程中遇到的MappedStatements collection does not contain value及BindingException: Invalid bound statement (not found)异常的原因与解决办法。主要问题在于SQL映射文件未被正确注册或SQL语句与接口方法不匹配。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

java.lang.IllegalArgumentException: Mapped Statements collection does not contain value for com.XX.dao.UserMapper.getUserList
	at org.apache.ibatis.session.Configuration$StrictMap.get(Configuration.java:775)
	at org.apache.ibatis.session.Configuration.getMappedStatement(Configuration.java:615)
	at org.apache.ibatis.session.Configuration.getMappedStatement(Configuration.java:608)
	at org.apache.ibatis.binding.MapperMethod$SqlCommand.<init>(MapperMethod.java:176)
	... 50 more

 

 org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): com.XX.dao.UserMapper.getUserList
	at org.apache.ibatis.binding.MapperMethod$SqlCommand.<init>(MapperMethod.java:178)
	at org.apache.ibatis.binding.MapperMethod.<init>(MapperMethod.java:38)
	at org.apache.ibatis.binding.MapperProxy.cachedMapperMethod(MapperProxy.java:49)
	at org.apache.ibatis.binding.MapperProxy.invoke(MapperProxy.java:42)

 最近在用mybatis出现上次错误,原因:

<!-- define the SqlSessionFactory -->
	<bean id="sqlSessionFactory"
		class="org.mybatis.spring.SqlSessionFactoryBean">
		<property name="dataSource" ref="dataSource" />
		<!--<property name="configLocation" value="classpath:mybatis-conf.xml" />-->
		<property name="typeAliasesPackage" value="com.XX" />
	</bean>

sqlSessionFactory上并未注册或获取到*mapper.xml里面的sql语句信息,造成这个原因无非就是:

*mapper.xml未找到或里面的sql中跟mapper接口中的方法不对应。

总之,从sqlSessionFactory或xml中入手,很容易揪出错的,而且配置这块经常容易出问题,尤其对mybatis不熟或首次集成的time!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值