先来看一下Mybatis主配置文件的格式:
<?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="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql:///pc"/>
<property name="username" value="root"/>
<property name="password" value="root"/>
</dataSource>
</environment>
</environments>
<!-- 映射文件路径 -->
<mappers>
<mapper resource="org/example/dao/mapper.xml"/>
</mappers>
</configuration>
一、properties属性
在使用 properties 标签配置时,我们可以采用两种方式指定属性配置
1)直接在主配置文件中定义数据库连接信息
<properties>
<property name="jdbc.driver" value="com.mysql.jdbc.Driver"/>
<property name="jdbc.url" value="jdbc:mysql://localhost:3306/mybatis"/>
<property name="jdbc.username" value="root"/>
<property name="jdbc.password" value="123445"/>
</properties>
2)引入外部配置文件
在 classpath 下定义jdbcConfig.properties文件
jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/mybatis
jdbc.username=root
jdbc.password=123
在主配置文件中引入
<!-- 配置连接数据库的信息
resource 属性:用于指定 properties 配置文件的位置,要求配置文件必须在类路径下
resource="jdbcConfig.properties"
url 属性:
URL: Uniform Resource Locator 统一资源定位符
http://localhost:8080/mystroe/CategoryServlet URL
协议 主机 端口 URI
URI:Uniform Resource Identifier 统一资源标识符
/mystroe/CategoryServlet
它是可以在 web 应用中唯一定位一个资源的路径
-->
<!--配置properties-->
<properties resource="jdbcConfig.properties"></properties>
dataSource 标签就变成了引用上面的配置
<!-- 配置 mybatis 的环境 -->
<environments default="development">
<!-- 配置 mysql 的环境 -->
<environment id="development">
<!-- 配置事务的类型 -->
<transactionManager type="JDBC"/>
<!-- 配置连接数据库的信息:用的是数据源(连接池) -->
<dataSource type="POOLED">
<property name="driver" value="${jdbc.driver}"/>
<property name="url" value="${jdbc.url}"/>
<property name="username" value="${jdbc.username}"/>
<property name="password" value="${jdbc.password}"/>
</dataSource>
</environment>
</environments>
二、typeAliases别名
<typeAliases>
<!-- 单个别名定义 -->
<typeAlias alias="user" type="com.dianchou.domain.User"/>
<!-- 批量别名定义,扫描整个包下的类,别名为类名(首字母大写或小写都可以) -->
<package name="com.dianchou.domain"/>
<package name="其它包"/>
</typeAliases>
三、mappers映射器
<!-- 使用相对于类路径的资源引用 通过resource属性引入classpath路径的相对资源-->
<mappers>
<mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
<mapper resource="org/mybatis/builder/BlogMapper.xml"/>
<mapper resource="org/mybatis/builder/PostMapper.xml"/>
</mappers>
<!-- 使用完全限定资源定位符(URL) 通过url引入网络资源或者本地磁盘资源-->
<mappers>
<mapper url="file:///var/mappers/AuthorMapper.xml"/>
<mapper url="file:///var/mappers/BlogMapper.xml"/>
<mapper url="file:///var/mappers/PostMapper.xml"/>
</mappers>
<!-- 使用映射器接口实现类的完全限定类名
通过class属性指定mapper接口名称-->
<mappers>
<mapper class="org.mybatis.builder.AuthorMapper"/>
<mapper class="org.mybatis.builder.BlogMapper"/>
<mapper class="org.mybatis.builder.PostMapper"/>
</mappers>
此时对应的映射文件必须与接口位于同一路径下,并且名称相同
<!-- 将包内的映射器接口实现全部注册为映射器
package标签,通过name属性指定mapper接口所在的包名
-->
<mappers>
<package name="org.mybatis.builder"/>
</mappers>
此时对应的映射文件必须与接口位于同一路径下,
并且名称相同
此时namespace的值为全限定类名