一双跑鞋的mybatis(二)---mybatis配置文件

<?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,后面即可动态引用此属性-->
    <properties resource="connection.properties">
    <property name="password" value="qiyu0126"/>
    </properties>
    <!-- mybatis的一些内置配置 -->
    <settings>
      <setting name="defaultStatementTimeout" value="25000"/>
    </settings>
    <!-- 空间别名,可以简化mapper中的书写 -->
   <typeAliases>
      <!-- 
       <typeAlias type="org.senssic.bean.Address" alias="Address"/>
       <typeAlias type="org.senssic.bean.Person" alias="Person"/>
        --> 
        <!-- 一般用这个,对应为Address和Person -->
       <package name="org.senssic.bean" />
   </typeAliases>
   <!--  处理从数据库中转化为java类型转换类需要继承BaseTypeHandler,除非特殊需要,一般用不到
   <typeHandlers>
     <typeHandler handler=""/>
   </typeHandlers>
   -->
       <environments default="development">
       <!-- 默认的要和下面的一个environment一致 -->
          <environment id="development">
            <transactionManager type="jdbc"><!-- MANAGED--不管理事务,让容器来管理比如spring -->
            </transactionManager>
            <dataSource type="pooled"><!-- UNPOOLED – 这个数据源的实现是每次被请求时简单打开和关闭连接。它有一点慢, 这是对简单应用程序的一个很好的选择, 因为它不需要及时的可用连接。
                                        JNDI – 这个数据源的实现是为了使用如 Spring 或应用服务器这类的容器, 容器可以集 中或在外部配置数据源,然后放置一个 JNDI 上下文的引用。
                                      -->
              <property name="driver" value="${driver}"/>
              <property name="url" value="${url}"/>
              <property name="username" value="${username}"/>
              <property name="password" value="${password}"/>
            </dataSource>
          </environment>
       </environments>
       <mappers>
         <mapper resource="org/senssic/bean/AddressMapper.xml"/>
         <mapper resource="org/senssic/bean/PersonMapper.xml"/>
       </mappers>
    </configuration>

1.settings节点

设置项                      描述                                                                                     允许值                                默认值 


cacheEnabled             对在此配置文件下的所有cache 进行全                    true| false                             true 
                                       局性开/关设置。 


lazyLoadingEnabled       全局性设置懒加载。如果设为‘关’,                         true| false                           true 
                                          则所有相关联的都会被初始化加载。 


aggressiveLazyLoading    当设置为‘开’的时候,懒加载的对象                      true| false                            true 
                         可能被任何懒属性全部加载。否则,每 个属性都按需加载。

 
multipleResultSetsEnabled   允许和不允许单条语句返回多个数据                 true| false                    true 
                                                      集(取决于驱动需求) 


useColumnLabel           使用列标签代替列名称。不用的驱动器                         true| false                   true 
                                         有不同的作法。参考一下驱动器文档, 
                                        或者用这两个不同的选项进行测试一 
                         下。 

useGeneratedKeys         允许JDBC生成主键。需要驱动器支持。                     true| false                   False 
                         如果设为了true,这个设置将强制使用 
                         被生成的主键,有一些驱动器不兼容不 
                         过仍然可以执行。 



autoMappingBehavior      指定MyBatis是否并且如何来自动映射                           NONE, PARTIAL,   FULL                 PARTIAL 
                         数据表字段与对象的属性。PARTIAL 
                         将只自动映射简单的,没有嵌套的结
                         果。FULL 将自动映射所有复杂的结果。 


defaultExecutorType      配置和设定执行器,SIMPLE 执行器执                            SIMPLE REUSE   BATCH              SIMPLE 
                         行其它语句。REUSE 执行器可能重复 
                         使用preparedstatements语句,BATCH 
                         执行器可以重复执行语句和批量更新。 


defaultStatementTimeout  设置一个时限,以决定让驱动器等待数 正整数                       NotSet 
                         据库回应的多长时间为超时                                (null) 


2.typeAliases节点

对于普通的 Java 类型,有许多内建的类型别名。它们都是大小写不敏感的,由于重载 的名字,要注意原生类型的特殊处理。

别名映射的类型
_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
object Object
map Map
hashmap HashMap
list List
arraylist ArrayList
collection Collection
iterator Iterator
3.事务和数据源

事务:

  • JDBC – 这个配置直接简单使用了 JDBC 的提交和回滚设置。 它依赖于从数据源得 到的连接来管理事务范围。
  • MANAGED – 这个配置几乎没做什么。它从来不提交或回滚一个连接。而它会让 容器来管理事务的整个生命周期(比如 Spring 或 JEE 应用服务器的上下文) 默认 情况下它会关闭连接。 然而一些容器并不希望这样, 因此如果你需要从连接中停止 它,将 closeConnection 属性设置为 false。
数据源:

UNPOOLED – 这个数据源的实现是每次被请求时简单打开和关闭连接。它有一点慢, 这是对简单应用程序的一个很好的选择, 因为它不需要及时的可用连接。 不同的数据库对这 个的表现也是不一样的, 所以对某些数据库来说配置数据源并不重要, 这个配置也是闲置的。 UNPOOLED 类型的数据源仅仅用来配置以下 5 种属性:

  • driver – 这是 JDBC 驱动的 Java 类的完全限定名(如果你的驱动包含,它也不是 数据源类)。
  • url – 这是数据库的 JDBC URL 地址。
  • username – 登录数据库的用户名。
  • password – 登录数据库的密码。
  • defaultTransactionIsolationLevel – 默认的连接事务隔离级别。

作为可选项,你可以传递数据库驱动的属性。要这样做,属性的前缀是以“driver.”开 头的,例如:

  • driver.encoding=UTF8

这 样 就 会 传 递 以 值 “ UTF8 ” 来 传 递 属 性 “ encoding ”, 它 是 通 过 DriverManager.getConnection(url,driverProperties)方法传递给数据库驱动。

POOLED – 这是 JDBC 连接对象的数据源连接池的实现,用来避免创建新的连接实例 时必要的初始连接和认证时间。这是一种当前 Web 应用程序用来快速响应请求很流行的方 法。

除了上述(UNPOOLED)的属性之外,还有很多属性可以用来配置 POOLED 数据源:

  • poolMaximumActiveConnections – 在任意时间存在的活动(也就是正在使用)连 接的数量。默认值:10
  • poolMaximumIdleConnections – 任意时间存在的空闲连接数。
  • poolMaximumCheckoutTime – 在被强制返回之前,池中连接被检查的时间。默认 值:20000 毫秒(也就是 20 秒)
  • poolTimeToWait – 这是给连接池一个打印日志状态机会的低层次设置,还有重新 尝试获得连接, 这些情况下往往需要很长时间 为了避免连接池没有配置时静默失 败)。默认值:20000 毫秒(也就是 20 秒)
  • poolPingQuery – 发送到数据的侦测查询,用来验证连接是否正常工作,并且准备 接受请求。默认是“NO PING QUERY SET” ,这会引起许多数据库驱动连接由一 个错误信息而导致失败。
  • poolPingEnabled – 这是开启或禁用侦测查询。如果开启,你必须用一个合法的 SQL 语句(最好是很快速的)设置 poolPingQuery 属性。默认值:false。
  • poolPingConnectionsNotUsedFor – 这是用来配置 poolPingQuery 多次时间被用一次。 这可以被设置匹配标准的数据库连接超时时间, 来避免不必要的侦测。 默认值: 0(也就是所有连接每一时刻都被侦测-但仅仅当 poolPingEnabled 为 true 时适用)。

JNDI – 这个数据源的实现是为了使用如 Spring 或应用服务器这类的容器, 容器可以集 中或在外部配置数据源,然后放置一个 JNDI 上下文的引用。这个数据源配置只需要两个属 性:

  • initial_context – 这 个 属 性 用 来 从 初 始 上 下 文 中 寻 找 环 境 ( 也 就 是 initialContext.lookup(initial——context) 。这是个可选属性,如果被忽略,那么 data_source 属性将会直接以 initialContext 为背景再次寻找。
  • data_source – 这是引用数据源实例位置的上下文的路径。它会以由 initial_context 查询返回的环境为背景来查找,如果 initial_context 没有返回结果时,直接以初始 上下文为环境来查找。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值