整合Spring、SpringMVC、Mybatis的时候出现:org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): com.ssm.crud.dao.DepartmentMapper
首先按照:原文链接中一一检查,并没解决问题,即以下顺序:
1、检查xml文件所在的package名称是否和interface对应的package名称一一对应
2、检查xml文件的namespace是否和xml文件的package名称一一对应
3、检查函数名称能否对应上
4、去掉xml文件中的中文注释
5、随意在xml文件中加一个空格或者空行然后保存
然后把Spring中整合Mybatis的配置文件改了一下:
以前Spring的配置文件中与Mybatis整合部分:
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource"/>
<property name="configLocation" value="classpath:mybatis-config.xml" />
<!-- 指定映射文件的位置 -->
<property name="mapperLocations" value="classpath:mapper/*.xml" />
</bean>
<!-- 配置扫描器, 将mybatis接口的加入到IOC容器中 -->
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<!-- 扫描所有 Mapper接口 -->
<property name="basePackage" value="com.ssm.crud.dao"/>
</bean>
改变以后可以运行,没有出现错误:
现在整合mybatis配置文件部分:
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource"/>
<property name="configLocation" value="classpath:mybatis-config.xml" />
<!-- 指定映射文件的位置 -->
<property name="mapperLocations" value="classpath:mapper/*.xml" />
</bean>
<!-- 扫描所有mapper接口的实现, 让这些mapper能够自动注入 -->
<mybatis-spring:scan base-package="com.ssm.crud.dao"/>