mybatis核心配置为啥不用通配符?

XxxMapper.xml文件放在resources/mappers目录下

为啥不能写成<mapper resource="mappers/*.xml"/>

用通配符多方便

<?xml version="1.0" encoding="UTF-8" ?>

<!DOCTYPE configuration

PUBLIC "-//mybatis.org//DTD Config 3.0//EN"

"http://mybatis.org/dtd/mybatis-3-config.dtd">

<configuration>

<environments default="development">

<environment id="development">

<transactionManager type="JDBC"/>

<dataSource type="POOLED">

<property name="driver" value="${driver}"/>

<property name="url" value="${url}"/>

<property name="username" value="${username}"/>

<property name="password" value="${password}"/>

</dataSource>

</environment>

</environments>

<mappers>

<mapper resource="mappers/BlogMapper.xml"/>

</mappers>

</configuration>


回答:

mybatis自身不支持通配符的方式,但它可以支持配置一个包,将包内的映射器接口实现全部注册为映射器,支持的几种配置方式如下

<!-- 使用相对于类路径的资源引用 -->

<mappers>

<mapper resource="org/mybatis/builder/AuthorMapper.xml"/>

<mapper resource="org/mybatis/builder/BlogMapper.xml"/>

<mapper resource="org/mybatis/builder/PostMapper.xml"/>

</mappers>

<!-- 使用完全限定资源定位符(URL) -->

<mappers>

<mapper url="file:///var/mappers/AuthorMapper.xml"/>

<mapper url="file:///var/mappers/BlogMapper.xml"/>

<mapper url="file:///var/mappers/PostMapper.xml"/>

</mappers>

<!-- 使用映射器接口实现类的完全限定类名 -->

<mappers>

<mapper class="org.mybatis.builder.AuthorMapper"/>

<mapper class="org.mybatis.builder.BlogMapper"/>

<mapper class="org.mybatis.builder.PostMapper"/>

</mappers>

<!-- 将包内的映射器接口实现全部注册为映射器 -->

<mappers>

<package name="org.mybatis.builder"/>

</mappers>

但是mybatis与spring集成时,是可以通过通配符来配置mapperLocations的,如

<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">  

<property name="dataSource" ref="dataSource" />

<property name="configLocation" value="classpath:sqlMapConfig.xml"></property>

<property name="mapperLocations" value="classpath:mappers/*Mapper.xml"></property>

</bean>

以上是 mybatis核心配置为啥不用通配符? 的全部内容, 来源链接: utcz.com/p/944511.html

回到顶部