Mybatismapper接⼝与xml⽂件路径分离
为什么分离
对于Maven项⽬,IntelliJ IDEA默认是不处理src/main/java中的⾮java⽂件的,不专门在l中配置<resources>是会报错的,参考。所以src/main/java中最好不要出现⾮java⽂件。实际上,将l放在src/main/resources中⽐较合适。
如何分离
⾸先,mapper肯定是不能配在l的<Mappers>⾥了,因为⾥⾯的⽅式都需要接⼝和xml在统⼀⽂件夹下
<!-- 将sql映射注册到全局配置中-->
<mappers>
<!--
mapper 单个注册(mapper如果多的话,不太可能⽤这种⽅式)
resource:引⽤类路径下的⽂件
url:引⽤磁盘路径下的资源
class,引⽤接⼝
package 批量注册(基本上使⽤这种⽅式)
name:mapper接⼝与l所在的包名
-->
<!-- 第⼀种:注册sql映射⽂件-->
<mapper resource="com/spldeolin/l" />
<!-- 第⼆种:注册接⼝ sql映射⽂件必须与接⼝同名,并且放在同⼀⽬录下-->
<!--<mapper class="com.spldeolin.mapper.UserMapper" />-->
<!-- 第三种:注册基于注解的接⼝基于注解没有sql映射⽂件,所有的sql都是利⽤注解写在接⼝上-->
<!--<mapper class="com.spldeolin.mapper.TeacherMapper" />-->
<!-- 第四种:批量注册需要将sql配置⽂件和接⼝放到同⼀⽬录下-->
<package name="com.spldeolin.mapper"/>
</mappers>
所以不在l中进⾏全局配置。
其次,在sqlSessionFactory.mapperLocations指定l的路径,在mapperScannerConfigurer.basePackage指定mapper接⼝的包名。
最终,⽬录结构、l和l⼤致是这样的。
⽬录结构(其他内容省略)
<?xml version="1.0" encoding="UTF-8" ?>
<beans xmlns="/schema/beans"
xmlns:context="/schema/context"
xmlns:xsi="/2001/XMLSchema-instance"
xsi:schemaLocation="/schema/beans
/schema/beans/spring-beans.xsd
/schema/context
/schema/context/spring-context.xsd">
<!--DB配置⽂件-->
<context:property-placeholder location="classpath:db.properties"
ignore-unresolvable="true"/>
<!--数据源-->
<bean id="dataSource" class="org.apachemons.dbcp2.BasicDataSource"> <property name="driverClassName" value="${jdbc.driver}"/>
<property name="url" value="${jdbc.url}"/>
<property name="username" value="${jdbc.username}"/>
<property name="password" value="${jdbc.password}"/>
</bean>
<!--qlSessionFactory-->
<bean id="sqlSessionFactory"
class="batis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource"/>
<!--Mybatis配置⽂件-->
<property name="configLocation"
value="l"/>
<!--l所在位置-->
<property name="mapperLocations" value="classpath:mapper/*l"/> <!--指定需要使⽤别名的PO类所在的包-->
<property name="typeAliasesPackage"
value="com.spldeolin.demoapp.po"/>
</bean>
<bean class="batis.spring.mapper.MapperScannerConfigurer">
<!--mapper接⼝所在的包-->
<property name="basePackage" value="com.spldeolin.demoapp.dao"/>
</bean>
</beans>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration PUBLIC "-////DTD Config 3.0//EN"
"/dtd/mybatis-3-config.dtd">
<configuration>
<!-- 其他全局配置 -->
<settings>
<setting name="logImpl" value="LOG4J2"/>
<setting name="cacheEnabled" value="true"/>
</settings>
<!--全局分页插件-->
<plugins>
<plugin interceptor="com.github.pagehelper.PageHelper">
<property name="dialect" value="mysql"/>
<property name="offsetAsPageNum" value="true"/>
<property name="rowBoundsWithCount" value="true"/>
<property name="pageSizeZero" value="true"/>
<property name="reasonable" value="false"/>
<property name="returnPageInfo" value="check"/>
<property name="params" value="pageNum=start;pageSize=limit;"/>
</plugin>
</plugins>
</configuration>
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论