您的位置:首页 > 数据库

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

2016-04-04 17:33 781 查看

前言

全局配置文件(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>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  全局配置文件