04.SSM框架整合-Mybatis映射文件的存放路径注意事项

it2023-05-27  72

一: Mapper接口与映射文件在同一目录下

方式一:同一目录,位置不同

在Spring的核心配置文件中,配置了在指定包下批量扫描mapper映射文件:

<!-- 批量扫描mapper包,创建代理对象 --> <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"> <property name="basePackage" value="com.lg.mapper"/> <property name="sqlSessionFactoryBeanName" value="factory"/> </bean>

如上所示,spring会扫描com.lg.mapper下的mapper映射文件生成代理对象,它默认扫描的是resources下的com.lg.mapper映射文件,所以你的mapper接口与映射文件要分开写,位置不同,但目录要一致,才能映射到,如:

方式二:同一目录,位置相同

效果图: mapper接口与映射文件在同一包下,且在都在src/main/java下, 实现步骤: 在之前的指定扫描包的位置下,还需要在pom.xml配置中配置:

<build> <resources> <resource> <directory>src/main/java</directory> <includes> <include>**/*.xml</include> </includes> <filtering>false</filtering> </resource> </resources> </build>

二:mapper接口与映射文件目录不一致

效果图: mapper接口的目录为com.lg.mapper。 mapper映射文件的目录位置为 resources:mapper/

配置方式:

<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:mybatis="http://mybatis.org/schema/mybatis-spring" xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://mybatis.org/schema/mybatis-spring http://mybatis.org/schema/mybatis-spring.xsd"> <!-- 使用mybatis:scan 扫描包 --> <mybatis:scan base-package="com.lg.mapper" /> <bean id="factory" class="org.mybatis.spring.SqlSessionFactoryBean"> <!-- 配置mapper文件位置,扫描映射文件--> <property name="mapperLocations" value="classpath:mapper/*.xml"> </property> //..... </bean>

三: mapper映射文件的约束

<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace=""> </mapper>
最新回复(0)