zoukankan      html  css  js  c++  java
  • 使用maven整合mybatis时出现org.apache.ibatis.binding.BindingException: Invalid bound statement (not found)

    分析原因是mybatis的映射文件的问题,首先进行分析排查:

    1.检查mapper接口和对应的xml文件的包名是否对应

    2.检查xml文件的namespace与mapper接口的包名是否对应

    3.检查mapper接口的函数名字与xml文件中的方法的id是否一致

    4.如果是ssm整合工程的话,应该检查一下在spring-mybatis的配置文件applicationContext-dao.xml(这里的名字不唯一,这里是为了统一名字)有没有加载进web.xml中。

     5.如果是普通的ssm项目,则这样配置:
    <bean id="sqlSessionFactoryBean" class="org.mybatis.spring.SqlSessionFactoryBean">
    <property name="dataSource" ref="druidDataSource"/>
    <property name="configLocation" value="classpath:mybatis-config.xml"/>
    <!-- 配置mapper文件的位置 -->
    <property name="mapperLocations" value="classpath:mapper/*.xml"/>
    </bean>

    一般的错误此时已经可以基本解决了。

    如果还没有解决的话,我们可以考虑是xxxMapper.xml文件没有编译到classes文件中,或者是路径错误访问不到。

    我们可以将xxxMapper.xml文件直接手动拖到对应的目录下,比如我将ItemMapper.xml拖到了classes中的与ItemMapper.class在一个目录,再次启动tomcat服务器就可以正常访问了。

     这是一个治标不治本的方法,我们要从根本上找问题的话就是,我们在resources中创建目录用的方式是不对的。

     

     正确的方式应该是这样的:

    要使用/ 来分割目录,使用点 . 来分割的话创建的目录就是一个名称为com.atyyc.ssm.dao的目录,所以mybatis访问的话,路径就错误了,这是一个创建包的小细节,圈起来。

  • 相关阅读:
    【转】 C++模板详解
    【转】 memcmp源码实现
    【转】 C++的精髓——虚函数
    【转】 如何使用Valgrind memcheck工具进行C/C++的内存泄漏检测
    【转】 优秀代码所具备的5大品质
    爬取贴吧中的html,并保存到相对应的文件夹中
    urllib模块通过post请求获取数据
    django,uwsgi, nginx部署项目
    Django中Ajax处理
    Django中的session于cookie的用法
  • 原文地址:https://www.cnblogs.com/yycstart/p/13713277.html
Copyright © 2011-2022 走看看