文档章节

org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): 异常解决

seniorotak
 seniorotak
发布于 2017/05/24 17:03
字数 571
阅读 10
收藏 0

Mybatis常会出现下面异常,这一般是xml映射文件有错误。但是这个提示不一定准确,以致网上有些资料说这个问题很奇怪。出现这个错误一般的解决方式在下面有说明:

http://blog.csdn.net/softwarehe/article/details/8889206

 

org.apache.ibatis.binding.BindingException: Invalid bound statement (not found)

 

一般的原因是Mapper interface和xml文件的定义对应不上,需要检查包名,namespace,函数名称等能否对应上,需要比较细致的对比,我经常就是写错了一两个字母搞的很长时间找不到错误

 

按以下步骤一一执行:

1:检查xml文件所在的package名称是否和interface对应的package名称一一对应

2:检查xml文件的namespace是否和xml文件的package名称一一对应

3:检查函数名称能否对应上

4:去掉xml文件中的中文注释

5:随意在xml文件中加一个空格或者空行然后保存

 

一般来说到此就可以排除错误了。

 

      以上步骤除第5步,其他步骤没什么问题。第5步看起来这么怪异的解决方式,实际上是触发了ide的自动编译功能。由于xml文件在编译的时候,不一定总能立即从源目录复制到class文件的编译目录(MyEclipse经常出这个问题),有时候你源目录中的xml文件已经修改好了,而class所在的目录里面还是旧的。因此真正确定有效的方式是将正确的xml文件复制到class输出目录。

 

      还有种情况会出这个错误,比如配置xml映射文件需要满足特定要求

    <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"

          p:dataSource-ref="dataSource" 

          p:configLocation="classpath:mybatis-config.xml">

        <property name="mapperLocations">

            <list>

                <value>classpath*:mapper/com/xxx/**/*Mapper.xml</value>

                <value>classpath*:dao/com/xxx/**/*Mapper.xml</value>

            </list>

        </property>

    </bean>

如上只有Mapper结尾的xml文件才会被Mybatis扫描到,这个时候如果忘记了这个规则,xml使用了其他名称,如xxxDao.xml。这样xml的配置就不会加入到Mybatis存储配置的一个map对象里去,也会出现 Invalid bound statement 的错误。解决方法就是把xml文件改名即可。

 

 

本文转载自:http://ljhzzyx.blog.163.com/blog/static/38380312201412453629988/

共有 人打赏支持
seniorotak
粉丝 0
博文 1
码字总数 0
作品 0
私信 提问
Mybatis异常_01_Invalid bound statement (not found)

异常信息:org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): com.taotao.mapper.TbItemMapper.selectByExample 原因:找不到mapper映射文件 解决方法:修......

rayner
2017/08/06
0
0
org.springframework.web.util.NestedServletException:

org.springframework.web.util.NestedServletException: Request processing failed; nested exception is org.apache.ibatis.binding.BindingException: Invalid bound statement (not foun......

白又白呀
2018/01/26
109
2
SpringMVC整合MyBatis测试,一直出错。。。调了好几天了!!!

这是整体的结构: 这是User类: 这是UserDao: 这是UserMapper.xml 其实上面三个都是自动生成的。 这是UserService类: 这是UserServiceImpl类: 这是UserController中代码: 这个是数据库和表...

沙拉曼德
2015/11/18
1K
4
pom里面配置bulid包含xml

首先这个问题是因为一个mapper映射文件没有映射到而来,我在mapper映射文件里新增了一个方法,然后建立test,去做测试,就出现了异常如下: org.apache.ibatis.binding.BindingException: In...

fgod
2016/02/29
656
1
关于springBoot整合mybatis打war包发布

springboot多moudule项目打成war包发布, 本地tomcat8对改war包进行测试,没有异常,当发布的云服务器centos7上报错.具体报错信息 错误信息org.apache.ibatis.binding.BindingException: Inval...

超级无敌智障
前天
0
0

没有更多内容

加载失败,请刷新页面

加载更多

OSChina 周三乱弹 —— 风扇写着先生请自爱

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @蚂蚁哈哈哈 :分享陈奕迅的单曲《落花流水》 《落花流水》- 陈奕迅 手机党少年们想听歌,请使劲儿戳(这里) @车谷 :我发现每天上班都好困 ...

小小编辑
48分钟前
6
0
centos7重置密码、单用户模式、救援模式、ls命令、chmod命令

在工作当中如果我们错误的配置了文件使服务器不能正常启动或者忘记密码不能登录系统,如何解决这些问题呢?重装系统是可以实现的,但是往往不能轻易重装系统的,下面用忘记密码作为例子讲解如...

李超小牛子
今天
3
0
Python如何开发桌面应用程序?Python基础教程,第十三讲,图形界面

当使用桌面应用程序的时候,有没有那么一瞬间,想学习一下桌面应用程序开发?行业内专业的桌面应用程序开发一般是C++,C#来做,Java开发的也有,但是比较少。本节课会介绍Python的GUI(图形用...

程序员补给栈
今天
8
0
kafka在的使用

一、基本概念 介绍 Kafka是一个分布式的、可分区的、可复制的消息系统。它提供了普通消息系统的功能,但具有自己独特的设计。 这个独特的设计是什么样的呢? 首先让我们看几个基本的消息系统...

狼王黄师傅
今天
3
0
Android JNI总结

0x01 JNI介绍 JNI是Java Native Interface的缩写,JNI不是Android专有的东西,它是从Java继承而来,但是在Android中,JNI的作用和重要性大大增强。 JNI在Android中起着连接Java和C/C++层的作...

天王盖地虎626
昨天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部