mybatis系列-05-SqlMapConfig.xml详解

mybatis的全局配置文件SqlMapConfig.xml,配置内容如下:

properties(属性)

settings(全局配置参数)

typeAliases(类型别名)

typeHandlers(类型处理器)

objectFactory(对象工厂)

plugins(插件)

environments(环境集合属性对象)

environment(环境子属性对象)

transactionManager(事务管理)

dataSource(数据源)

mappers(映射器)

5.1     properties属性

需求:

将数据库连接参数单独配置在db.properties中,只需要在SqlMapConfig.xml中加载db.properties的属性值。

在SqlMapConfig.xml中就不需要对数据库连接参数硬编码。

将数据库连接参数只配置在db.properties中,原因:方便对参数进行统一管理,其它xml可以引用该db.properties。

在sqlMapConfig.xml加载属性文件:

properties特性:

注意: MyBatis 将按照下面的顺序来加载属性:

  • 在 properties 元素体内定义的属性首先被读取。
  • 然后会读取properties 元素中resource或 url 加载的属性,它会覆盖已读取的同名属性。
  • 最后读取parameterType传递的属性,它会覆盖已读取的同名属性。

建议:

不要在properties元素体内添加任何属性值,只将属性值定义在properties文件中。

在properties文件中定义属性名要有一定的特殊性,如:XXXXX.XXXXX.XXXX

5.2     settings全局参数配置

<!-- 全局配置参数,需要时再设置 -->

<!-- <settings>

</settings> -->

mybatis框架在运行时可以调整一些运行参数。

比如:开启二级缓存、开启延迟加载。。

全局参数将会影响mybatis的运行行为。

5.3     typeAliases(别名)重点

5.3.1     需求

在mapper.xml中,定义很多的statement,statement需要parameterType指定输入参数的类型、需要resultType指定输出结果的映射类型。

如果在指定类型时输入类型全路径,不方便进行开发,可以针对parameterType或resultType指定的类型定义一些别名,在mapper.xml中通过别名定义,方便开发。

5.3.2     mybatis默认支持别名


别名


映射的类型


_byte


byte


_long


long


_short


short


_int


int


_integer


int


_double


double


_float


float


_boolean


boolean


string


String


byte


Byte


long


Long


short


Short


int


Integer


integer


Integer


double


Double


float


Float


boolean


Boolean


date


Date


decimal


BigDecimal


bigdecimal


BigDecimal

5.3.3     自定义别名

5.3.3.1              单个别名定义

SqlMapConfig.xml中:

   <!-- 别名定义 -->
   <typeAliases>
      <!-- 针对单个别名定义
      type:类型的路径
      alias:别名
       -->
      <typeAlias type="cn.itcast.mybatis.po.User" alias="user"/>
   </typeAliases>

UserMapper.xml中引用别名:

   <select id="findUserByUsername" parameterType="java.lang.String" resultType="user">
      SELECT * FROM USER WHERE username LIKE ‘%${value}%‘
   </select>

5.3.3.2              批量别名定义

 <!-- 别名定义 -->
   <typeAliases>
      <!-- 批量别名定义
      指定包名,mybatis自动扫描包中的po类,自动定义别名,别名就是类名(首字母大写或小写都可以)
      -->
      <package name="cn.itcast.mybatis.po"/>
   </typeAliases>

5.4     typeHandlers(类型处理器)

mybatis中通过typeHandlers完成jdbc类型和java类型的转换。

通常情况下,mybatis提供的类型处理器满足日常需要,不需要自定义.

mybatis支持类型处理器:


类型处理器


Java类型


JDBC类型


BooleanTypeHandler


Boolean,boolean


任何兼容的布尔值


ByteTypeHandler


Byte,byte


任何兼容的数字或字节类型


ShortTypeHandler


Short,short


任何兼容的数字或短整型


IntegerTypeHandler


Integer,int


任何兼容的数字和整型


LongTypeHandler


Long,long


任何兼容的数字或长整型


FloatTypeHandler


Float,float


任何兼容的数字或单精度浮点型


DoubleTypeHandler


Double,double


任何兼容的数字或双精度浮点型


BigDecimalTypeHandler


BigDecimal


任何兼容的数字或十进制小数类型


StringTypeHandler


String


CHAR和VARCHAR类型


ClobTypeHandler


String


CLOB和LONGVARCHAR类型


NStringTypeHandler


String


NVARCHAR和NCHAR类型


NClobTypeHandler


String


NCLOB类型


ByteArrayTypeHandler


byte[]


任何兼容的字节流类型


BlobTypeHandler


byte[]


BLOB和LONGVARBINARY类型


DateTypeHandler


Date(java.util)


TIMESTAMP类型


DateOnlyTypeHandler


Date(java.util)


DATE类型


TimeOnlyTypeHandler


Date(java.util)


TIME类型


SqlTimestampTypeHandler


Timestamp(java.sql)


TIMESTAMP类型


SqlDateTypeHandler


Date(java.sql)


DATE类型


SqlTimeTypeHandler


Time(java.sql)


TIME类型


ObjectTypeHandler


任意


其他或未指定类型


EnumTypeHandler


Enumeration类型


VARCHAR-任何兼容的字符串类型,作为代码存储(而不是索引)。

5.5     mappers(映射配置)

5.5.1     通过resource加载单个映射文件

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

5.5.2     通过mapper接口加载单个mapper

   <mappers>
      <!-- 通过mapper接口加载单个 映射文件
      遵循一些规范:需要将mapper接口类名和mapper.xml映射文件名称保持一致,且在一个目录 中
      上边规范的前提是:使用的是mapper代理方法
       -->
      <mapper class="cn.itcast.mybatis.mapper.UserMapper"/>
   </mappers>

按照上边的规范,将mapper.java和mapper.xml放在一个目录 ,且同名。

5.5.3     批量加载mapper(推荐使用)

   <mappers>
      <!-- 批量加载mapper
      指定mapper接口的包名,mybatis自动扫描包下边所有mapper接口进行加载
      遵循一些规范:需要将mapper接口类名和mapper.xml映射文件名称保持一致,且在一个目录 中
      上边规范的前提是:使用的是mapper代理方法
       -->
      <package name="cn.itcast.mybatis.mapper"/>
   </mappers>
时间: 05-24

mybatis系列-05-SqlMapConfig.xml详解的相关文章

五 mybatis的SqlMapConfig.xml详解

SqlMapConfig.xml 1 <?xml version="1.0" encoding="UTF-8" ?> 2 <!DOCTYPE configuration 3 PUBLIC "-//mybatis.org//DTD Config 3.0//EN" 4 "http://mybatis.org/dtd/mybatis-3-config.dtd"> 5 <configuration>

2、MyBatis系列:全局配置文件详解

MyBatis 全局映射配置文件 MyBatis 的配置文档的顶层结构如下: configuration 配置 properties 属性 settings 设置 typeAliases 类型命名 typeHandlers 类型处理器 objectFactory 对象工厂 plugins 插件 environments 环境 databaseIdProvider 数据库厂商标识 environment 环境变量 transactionManager 事务管理器 dataSource 数据源 ma

协议学习之 vamei博客系列 05 IP协议详解

作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! 在粗略了解了IP接力和IP地址后,我们再反过来,看一看IP协议的具体细节和设计哲学. IPv4与IPv6头部的对比 我们已经在IP接力中介绍过,一个IP包分为头部(header)和数据(payload/data)两部分.头部是为了实现IP通信必须的附加信息,数据是IP通信所要传送的信息. 黄色区域 (同名区域) 我们看到,三个黄色区域跨越了IPv4和IPv6.Version(4位

《深入理解mybatis原理6》 MyBatis的一级缓存实现详解 及使用注意事项

<深入理解mybatis原理> MyBatis的一级缓存实现详解 及使用注意事项 0.写在前面   MyBatis是一个简单,小巧但功能非常强大的ORM开源框架,它的功能强大也体现在它的缓存机制上.MyBatis提供了一级缓存.二级缓存 这两个缓存机制,能够很好地处理和维护缓存,以提高系统的性能.本文的目的则是向读者详细介绍MyBatis的一级缓存,深入源码,解析MyBatis一级缓存的实现原理,并且针对一级缓存的特点提出了在实际使用过程中应该注意的事项. 读完本文,你将会学到: 1.什么是一

Ant之build.xml详解

Ant的概念 可能有些读者并不连接什么是Ant以及入可使用它,但只要使用通过Linux系统得读者,应该知道make这个命令.当编译Linux内核及一些软件的源程序时,经常要用这个命令.Make命令其实就是一个项目管理工具,而Ant所实现功能与此类似.像make,gnumake和nmake这些编译工具都有一定的缺陷,但是Ant却克服了这些工具的缺陷.最初Ant开发者在开发跨平台的应用时,用样也是基于这些缺陷对Ant做了更好的设计. Ant 与 makefile Makefile有一些不足之处,比如

Tomcat主配置文件Server.xml详解

Tomcat主配置文件Server.xml详解 1.软件版本 [[email protected] META-INF]# java -version java version "1.8.0_60" Java(TM) SE Runtime Environment (build 1.8.0_60-b27) Java HotSpot(TM) 64-Bit Server VM (build 25.60-b23, mixed mode) 2.server.xml组件类别 顶级组件:位于整个配置的

JavaEE学习之Maven配置文件pom.xml详解(转)

一.引言 (本文转载自:http://blog.csdn.net/longeremmy/article/details/9670619) 使用maven有一些时间了,一直没有好好将pom配置文件每个节点的意义好好了解一番.今天突然想来了解下:pom- project object model 项目对象模型.顾名思义,他是用来描述项目信息的,以及构建方式,依赖等.网上有一篇文章写的很详细,这里就借用一下,以备日后使用. 二.详解 1 <project xmlns="http://maven.

OAF_OAF EO系列增删改 - Delete详解和实现(案例)

2014-06-14 BaoXinjian 一.摘要 在OAF中,似乎不是根据你光标所在的行来删除对应的记录,而是根据记录指针来删除,而这个指针又与你的光标位置无关需要用代码来精确的定位.因此我们在删除记录时,需要编写一定的代码来实现. User’s Guide中提供了一种标准的删除方法,通过在在当前记录集中用指针进行循环来定位需要删除的记录(例子提供的是只删一条). 不管如何删除,总的实现思路如下: Step1. 首先给需要删除的记录做标记:  要么打勾选上,要么在行上放个图标按钮来点火,总之

Mybatis学习(3)关于mybatis全局配置文件SqlMapConfig.xml

比如针对我这个项目的mybatis全局配置文件SqlMapConfig.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"> &l

Web.xml详解(转)

这篇文章主要是综合网上关于web.xml的一些介绍,希望对大家有所帮助,也欢迎大家一起讨论. ---题记 一.            Web.xml详解: (一)  web.xml加载过程(步骤) 首先简单说一下,web.xml的加载过程. 当我们去启动一个WEB项目时,容器包括(JBoss.Tomcat等)首先会读取项目web.xml配置文件里的配置,当这一步骤没有出错并且完成之后,项目才能正常地被启动起来. l  启动WEB项目的时候,容器首先会去它的配置文件web.xml读取两个节点: