码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2015-06-14 18:26:37      阅读:214      评论:0      收藏:0      [点我收藏+]

标签:

MyBatis 全局映射配置文件

MyBatis 的配置文档的顶层结构如下:

configuration 配置

  • properties 属性
  • settings 设置
  • typeAliases 类型命名
  • typeHandlers 类型处理器
  • objectFactory 对象工厂
  • plugins 插件
  • environments 环境
  • databaseIdProvider 数据库厂商标识
    • environment 环境变量
      • transactionManager 事务管理器
      • dataSource 数据源
  • mappers 映射器

配置文件示例

<?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>

    <!-- 有3处可以定义属性值,以下是根据优选级(1>2>3)读取,会覆盖优先级低的同名属性。 
        1. sqlSessionFactoryBuilder.build(reader, props); 方法中转入的属性。 
        2. properties 元素内定义的属性。 
        3. resource 读取的属性文件中的属性。 -->
    <properties resource="db.properties">
        <property name="username1" value="dev_user" />
    </properties>

    <!-- MyBatis内部的参数设置,将会改变MyBatis运行时的行为。 
         以下是几个常用的参数示例。 -->
    <settings>
        <!-- 已设置启用缓存,默认为true -->
        <setting name="cacheEnabled" value="true" />
        <!-- 已设置启用延时加载,默认为false -->
        <setting name="lazyLoadingEnabled" value="true" />
        <!-- 已设置启用单一SQL语句多个返回集,默认为true. -->
        <setting name="multipleResultSetsEnabled" value="true" />
    </settings>

    <!-- 用于将一个 java 类型定义为一个简短的别名,用于减少类完全限定名的冗余. 
          比如在 environment 标签内所使用到的 JDBC, POOLED 就内置定义的别名. -->
    <typeAliases>
        <!-- 定义单个java类型,并为它定义一个别名. -->
        <typeAlias alias="user" type="cn.xleos.mybatis.po.User" />
        <!-- 指定一个包下所有的 java 类型,并使用类名首字母小写做为其别名. 若存在多个包,只需要定义多个 package 标签. -->
        <!-- <package name="cn.xleos.mybatis.po" /> -->
    </typeAliases>

    <!-- 数据库字段值到实体属性的数据类型转换处理器定义 -->
    <typeHandlers>
        <!-- 这里定义的是可Serializable类型与Json类型的类型转换器. 
              当字段jdbc类型为CLOB,实体属性类型为Map,MyBatis将数据转实体时会默认调用此转换器.
              在 mapper 配置文件中也可会字段指定其它转换器.
         -->
        <typeHandler handler="cn.xleos.mybatis.typehandlers.JsonTypeHandler"
            javaType="java.util.Map" jdbcType="CLOB" />
    </typeHandlers>
    
    <!-- 用于在执行某个映射语句时的拦截调用. -->
    <plugins>
        <!-- 这是用于在执行 query 方法时用于数据库物理分页的. -->
        <plugin    interceptor="cn.xleos.framework.mybatis.paginator.OffsetLimitInterceptor">
            <!-- OffsetLimitInterceptor 的属性设置,告知分页插件所使用的数据库支持。 -->
            <property name="dialect" value="cn.xleos.framework.mybatis.paginator.dialect.MSSQL2005Dialect" />
        </plugin>
    </plugins>

    <!--  -->
    <environments default="development">
        <environment id="development">
            <!-- 配置该工程所使用的事务管理器类型,JDBC 为 JdbcTransactionFactory.class 的别名 -->
            <transactionManager type="JDBC" />
            <!-- 配置数据源类型, POOLED 为 PooledDataSourceFactory.class 的别名 -->
            <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>

    <!-- 用于多数据库的支持,基于 mapper 映射语句的 databaseId属性。
         DB_VENDOR 是 MyBatis中内置的 org.apache.ibatis.mapping.VendorDatabaseIdProvider 的别名。
     -->
    <databaseIdProvider type="DB_VENDOR">
        <!-- 以下 property.name 是通过 DatabaseMetaData#getDatabaseProductName() 获取的名称。
             property.value 是定义简短的别名,它将用于匹配 mapper映射语句的 databaseId 属性。
         -->
        <property name="SQL Server" value="sqlserver" />
        <property name="DB2" value="db2" />
        <property name="Oracle" value="oracle" />
    </databaseIdProvider>
    
    <!-- 告诉 MyBatis到何处去查询映射文件. -->
    <mappers>
        <!-- 配置工程所使用的 User 的 Mapper 映射文件路径 -->
        <mapper resource="mapper/user.xml" />
    </mappers>
    
</configuration>

 

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

标签:

原文地址:http://www.cnblogs.com/xialiang/p/4575328.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!