mybatis一个怪异的问题: Invalid bound statement (not found)


mybatis一个怪异的问题: Invalid bound statement (not found)_第1张图片

如果安装oracle失败报错jdbc sql连接错误之类的,直接先用 telnet  192.10.10.1 1   1521真是ip地址去连接一下,如果连接失败就用127.0.0.1去连接,然后文件中把真实地址也改为127.0.0.1就好了

telnet 127.0.0.1 1521能通, 可是用真实ip不通


jdbc.url=jdbc:oracle:thin:@127.0.0.1:1521:orcl 
jdbc.driver=oracle.jdbc.driver.OracleDriver     
jdbc.username=system
jdbc.password=ZSS521f




三种情况:

这种情况一般是指xml文件的命名规范在applicatio.xml配置里面找不到,没有识别到,只需要把mybatis下的xml文件该一下就好了,按照spring能扫描到的标准

1.
<mapper namespace="me.tspace.pm.dao.UserDao">  
mapper的namespace写的不对!!!注意系修改。

2.

UserDao的方法在UserDao.xml中没有,然后执行UserDao的方法会报此

3. UserDao的方法返回值是List<User>,而select元素没有正确配置ResultMap,或者只配置ResultType!

4. 如果你确认没有以上问题,请任意修改下对应的xml文件,比如删除一个空行,保存.问题解决..

mybatis错误一:

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

解决方法:

?
1
2
3
把mybatis的Mapper.java 和 Mapper.xml 和Mapper.xml中得,namespace 保持一致,
简单的说: 把Mapper.java 和Mapper.xml放入到同一个包中,然后XML中得namespace=Mapper.java的全类名 就 OK了

mybatis 错误二:

?
1
is not known to the MapperRegistry

解决方法:

?
1
mapper.xml中得namespace配置错误,不是借口的全限定名(包名.类名)

mybatis错误三:

?
1
org.apache.ibatis.cache.CacheException: Error serializing object. Cause: java.io.NotSerializableException:

解决方法:

?
1
采用二级缓存的实体类要实现可序列化接口: implements Serializable

mybatis 错误四:

?
1
mybatis 使用二级缓存,但是如果前一个sqlSession不提交 .commit(); 那么就不能使用二级缓存。

解决方法:

?
1
未解决

mybatis 错误五:

?
1
Invalid bound statement (not found)

解决方法:

?
1
2
3
接口 .java
sql映射文件 .xml (与接口名保持一致,并且在同一包下)
sql文件的namespace属性值与接口的全限定名称一直

mybatis 错误六:

?
1
2
java实体类中是Boolean类型,数据库中是 int 类型,更新时不能使用
< if test= "aa=!=null and aa!=''" > 只能使用< if test= "aa!=null" >

org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): *********/***Mapper(Dao).search***
可能会有不少人遇到这个问题,特别是在用mybatis,spring的时候,没错,我也遇到了,所以就在网上找解决方案,确实找到了一些,如下(ctrl+V的,你懂得):
1. namespace 写的不对
2.UserDao中的方法 你在mapper里面没有写
3. UserDao的方法返回值是List,而select元素没有正确配置ResultMap,或者只配置ResultType!
4.重新编译一下
以上就是我找到的方法,但是!!!我的还有这个错误。。。
卧槽,花了一天的时间,看了各种各样的解决方法,连mybatis的源码都看了,

首先,报的错是
org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): com.baa.poi.service.User Service .findAllUser
它把我的service接口当成mapper了,所以。。。。。

最后,终于找到了一个集成好的项目,一一对照,终于。。。

我用的是
(这里的代码见评论,问候一下新浪的。。。。把我的代码屏蔽了)
(把我的评论也屏蔽了。。。。。。。。。,所以写成下面这样了,莫怪,能看懂就好)
bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"
property name="basePackage" value="com.baa.poi"
bean
修改后
bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"
property name="basePackage" value="com.baa.poi"
property name="markerInterface" value="com.baa.poi.dao.supermapper.SuperMapper"
bean

这个是让所有继承了SuperMapper的Mapper/Dao才映射相应的Mapper.xml

还是对mybatis和spring了解的不够深入啊。

谨以此文记录我的成长历程,愿能帮助到遇到同样错误的猿/媛。

你可能感兴趣的:(mybatis一个怪异的问题: Invalid bound statement (not found))