最近在玩ssm框架搭建,突然發現最後的時候mybaits和SpringMvc進行整合的時候出現錯誤
Invalid bound statement (not found)
這個錯誤有可能出現在以下幾個方面:
1.如果測試類對mybatis進行測試的時候成功但是整合的時候失敗了,檢查這個spring-mybatis檔案是否有問題
在basePackage中只能掃描dao層,如果不指定,寫一個範圍型的會導致淨service也進行注入,導致錯誤
<!-- DAO介面所在包名,Spring會自動查詢其下的類 --> <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"> <!-- mybaties中只能讓他掃描dao層 --> <property name="basePackage" value="cn.lonecloud.dao" /> <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"></property> </bean>
2.如果進行測試類的時候出現錯誤檢查mapper檔案和spring-mybatis檔案中對basepackage是否寫錯
重要檢查這個幾個地方:
<mapper namespace="cn.lonecloud.dao.UserDao" > <resultMap id="BaseResultMap" type="cn.lonecloud.model.User" >
<!-- 自動掃描 --> <context:component-scan base-package="cn.lonecloud" />
<!-- spring和MyBatis完美整合,不需要mybatis的配置對映檔案 --> <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> <property name="dataSource" ref="dataSource" /> <!-- 自動掃描mapping.xml檔案 --> <property name="mapperLocations" value="classpath:cn/lonecloud/mapping/*.xml"></property> </bean>