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访问的话,路径就错误了,这是一个创建包的小细节,圈起来。

  • 相关阅读:
    Spark Streaming源码解读之Receiver生成全生命周期彻底研究和思考
    linux 修改时间时区,修改语言
    远程链接mysql error 2003
    Android NDK r10c 编译boost 1.55 (使用Cygwin)
    linux上cocos2dx Android打包环境
    linux上cocos2dx 环境配置
    linux, windows编译安装 boost库 (boost 1.56)
    编译安装 gcc 4.8.3
    vim配置添加python
    mvn设置
  • 原文地址:https://www.cnblogs.com/yycstart/p/13713277.html
Copyright © 2011-2022 走看看