(三)mybatis学习之全局配置文件(sqlMapConfig.xml)

前言

全局配置文件(sqlMapConfig.xml)包括:

properties(属性)

settings(全局配置参数)

typeAlias(别名)

typeHandlers(类型处理器)

objectFactory(对象工厂)<了解>

plugins(插件)<了解>

environments(环境集合属性对象)<了解>

environment(环境子属性对象)<了解>

transactionManager事务管理)<了解>

dataSource(数据源)<了解>

mappers(映射器)


properties(属性)

db.properties
jdbc_driver=com.mysql.jdbc.Driver
jdbc_url=jdbc:mysql://localhost:3306/mybatisdb?characterEncoding=utf8&zeroDateTimeBehavior=convertToNull
jdbc_username=root
jdbc_password=888

sqlMapConfig.xml中使用properties
<?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>

	<!-- 加载配置文件 -->
	<properties resource="db.properties">
		<!-- properties中还可以配置一些信息 -->
<!-- 		<property></property> -->
	</properties>


	<!-- environments指的是mybatis运行环境,目前单独使用mybatis做测试时,需要在该环境中配置数据源。
	当mybatis与spring整合后,这一块内容则被废弃了。因为数据源等环境都交由了spring来管理
	 -->
	<environments default="development">
		<environment id="development">
			<!-- 使用jdbc事务管理,事务控制由mybatis管理 -->
			<transactionManager type="JDBC"/>
			<!-- 数据库连接池,由mybatis管理 -->
			<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>
	
	<!-- 加载映射文件 -->
	<mappers>
		<mapper resource="sqlMap/user.xml"/>
	</mappers>
	
</configuration>


settings(全局配置参数)

mybatis全局配置参数,全局配置参数将会影响mybatis运行行为

具体内容参考  mybatis-3.3.1.pdf 的第 《3.1.2 settings》章节


typeAlias(别名)

针对输入参数(parameterTyoe)和 输出结果类型(resultType)来定义别名
在mybatis里,有很多默认的别名,具体内容参考  mybatis-3.3.1.pdf 的第 《3.1.3 typeAliases》章节
我们也可以自定义别名

单个别名的定义


<!-- 定义别名 -->
	<typeAliases>
	
		<!-- (1)针对单个别名的定义 
			type:类的全路径
			alias:别名
		-->
		<typeAlias type="pojo.User" alias="user"></typeAlias>
	</typeAliases>

user.xml映射文件中把pojo.User设置为别名(user)
<select id="findUserById" parameterType="java.lang.String" resultType="user">
		select * from tab_user where id=#{id}
	</select>

批量别名的定义

单个别名定义的话,如果有N个类型需要定义别名,则需要配置N个<typeAlias type="xxx.xxx.xx.xxx" alias="yyy"></typeAlias>,这样非常不方便。
接下来看看批量别名的定义

<!-- 定义别名 -->
	<typeAliases>
	
		<!-- 批量别名的定义,使用package标签
			name:指定包名,mybatis会自动的扫描包中的pojo类,自动定义别名,
			别名就是类名,首字母大写或小写都可以
		 -->
		<package name="pojo"/>
	</typeAliases>

user.xml映射文件中把pojo.User置为别名(User)
<select id="findUserById" parameterType="java.lang.String" resultType="User">
		select * from tab_user where id=#{id}
	</select>

typeHandlers(类型处理器)

mybatis是通过typeHandlers类型处理器来完成java与jdbc类型的转换。
一般不需要自定义,因为mybatis提供的类型处理器满足日常需要。

mappers(映射器)

加载单个映射文件

通过<mapper resource="xx/xx/xx.xml"/>来加载
<!-- 加载映射文件 -->
	<mappers>
		<!-- 通过 resource加载单个映射文件-->
		<mapper resource="sqlMap/user.xml"/>
	</mappers>

加载单个mapper接口(只适用于mapper代理开发)

通过<mapper class="xx.xx.xxMapper"/>来加载
<!-- 加载映射文件 -->
	<mappers>
		
		<!-- 通过mapper接口加载映射文件
			需要遵循一些规范:
			(1)这种方式只适用于mapper代理方式
			(2)mapper接口类名与mapper.xml配置文件名保存一致,且在一个目录
		  -->
		<mapper class="mapper.UserMapper"/>
	</mappers>
	

批量加载mapper接口(只适用于mapper代理开发)

通过<package name="xxx.xxxx"/>来加载
<!-- 加载映射文件 -->
	<mappers>
		
		<!-- 通过package进行批量加载mapper接口
		  name:指定mapper接口的包名,mybatis自动扫描包下的mapper接口
			需要遵循一些规范:
			(1)这种方式只适用于mapper代理方式
			(2)mapper接口类名与mapper.xml配置文件名保存一致,且在一个目录
		  -->
		<package name="mapper"/>
	</mappers>





你可能感兴趣的:(全局配置文件)