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

来源:互联网 发布:织梦cms后台演示地址 编辑:程序博客网 时间:2024/05/21 00:48

前言

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

properties(属性)

settings(全局配置参数)

typeAlias(别名)

typeHandlers(类型处理器)

objectFactory(对象工厂)<了解>

plugins(插件)<了解>

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

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

transactionManager事务管理)<了解>

dataSource(数据源)<了解>

mappers(映射器)


properties(属性)

db.properties
jdbc_driver=com.mysql.jdbc.Driverjdbc_url=jdbc:mysql://localhost:3306/mybatisdb?characterEncoding=utf8&zeroDateTimeBehavior=convertToNulljdbc_username=rootjdbc_password=888

sqlMapConfig.xml中使用properties
<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE configurationPUBLIC "-//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>





0 0
原创粉丝点击