mapper与mapper.xml不在同一目录下
这里所说的mapper与mapper.xml不在同一目录下指的是mapper在src/main/java下,mapper.xml在src/main/resources下。此时,对mapper文件的扫描配置如下:
<bean name="mapperScannerConfigurer" class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<property name="basePackage" value="cn.ac.showtime.dao"/>
</bean>
对mapper.xml文件的扫描配置如下:
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource"/>
<property name="mapperLocations" value="classpath*:mappers/*Mapper.xml"></property>
</bean>
这样在利用maven打包时,maven就能把这些资源文件打包到相应的jar或者war里。
mapper与mapper.xml在同一目录下
如上图所示,此时mapper与mapper.xml在同一目录下,即都在src/main/java下,此时由于maven认为src/main/java只是java的源代码的路径,所以不会把mapper.xml文件一起打包进jar或者war里。
一种解决方案是修改pom.xml文件中的配置,如加入以下内容:
<build>
<resources>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.xml</include>
</includes>
</resource>
</resources>
</build>
这样就可以把mapper.xml文件一起打包进jar或者war中了。