Spring整合Mybatis的一个小坑

205 阅读1分钟

问题描述:

在整合ssm框架时,在spring配置文件中完成classpath:Dao/*.xml,完成mapper的映射。(文件名对应后,resource映射方式是寻找资源路径,不能使用 .,而是应该使用/。)

这种方式没错,之后想使用Mybatis的配置文件实现mapper的映射,一直报错,后来发现是配置文件在resource/Dao/*.xml,而对应类在java/com/lzw/Dao中,两者不对应导致映射失败,故在资源文件建立com/lzw/Dao文件夹,在此文件夹中放配置文件,Mybatis配置方式实现成功。

回头再Spring配置文件中想读取配置文件,

classpath:com/lzw/Dao/BooksMapper.xml****能读取成功,

改为****classpath:com/lzw/Dao/*.xml则读取失败,

1)再改为 classpath*:com/lzw/Dao/*.xml读取成功。

2)此外再配置文件中加上

<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"> 
   <!-- 注入sqlSessionFactory ,此处不用SqlSessionTemplate--> 
   <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"/>  
  <!-- 给出需要扫描Dao接口包 -->   
 <property name="basePackage" value="com.lzw.Dao"/>
</bean>

也能读取成功。

上述情况在另外一个项目都没出错,即只要简单的

<property name="mapperLocations" value="classpath:com/lzw/Dao/*.xml"></property>

就能读取配置文件