使用intelliJ idea創建Mybatis工程後,掃描xml所在的包也配置了,如下,
<!--spring與MyBatis結合,不需要mybatis配置映射文件-->
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource"></property>
<!--自動掃描mapping.xml-->
<property name="mapperLocations" value="classpath:com/haoyifen/iot/mappers/*.xml"></property>
</bean>
但是一直報異常:
org.apache.ibatis.binding.BindingException: Invalid bound statement (not found)
也就是說沒有找到有sql語句的xml文件。
找了很久都沒找到問題所在,後來去看target文件夾,發現並沒有Mybatis的xml文件。原來是Maven默認並不打包源碼目錄下的xml文件,在pom.xml中添加如下的配置,將resource下的所有文件(spring和jdbc的配置也放進來)和源代碼目錄下的所有xml文件(Mybatis的xml映射文件)都打包進目標文件中。
<build>
<resources>
<resource>
<directory>
src/main/resources
</directory>
</resource>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.xml</include>
</includes>
</resource>
</resources>
</build>
再次運行就可以了