zoukankan      html  css  js  c++  java
  • MyBatis配置解析

    MyBatis配置文件解析(概要)

    1.configuration:根元素

      1.1  properties:定义配置外在化

      1.2  settings:一些全局性的配置

      1.3  typeAliases:为一些类定义别名

      1.4  typeHandlers:定义类型处理,也就是定义JAVA类型与数据库中的数据类型之间的转换关系

      1.5  objectFactory

      1.6  plugins:mybatis插件,插件可以修改MyBatis内部运行规则

      1.7  environments:配置Mybatis的环境

          1.7.1  enveronment

            1.7.1.1  transactionManager:事务管理器

            1.7.1.2  datasource:数据源

      1.8  databaseIdProvider

      1.9  mappers:指定映射文件或映射类

    这里我们重要介绍transactionManager和datasoruce的type取值

    transactionManager:

    type取值范围:

    JDBC:简单的使用JDBC的提交和回滚设置,一览与从数据员得到的链接来管理事务范围

    MANAGED:这个配置几乎什么都没做,它从来不提交或回滚一个链接,而它让容器来管理事务的整个生命周期(比如spring、jee应用服务器的上下文)

    在默认情况下,MANAGED会关闭连接,如果有时候不希望这样时,可以从连接中停止它,将claseConnection属性设置为false:

    <transactionManager type="MANAGED">
      <property name="closeConnection" value="false"/>
    </transactionManager>

    dataSource:

    type取值范围:

    UNPOOLED:这个数据源的实现是每次被请求时打开和关闭连接。速度会有一些慢,适用于简单的应用程序。

    这种类型的数据源只需要配置下面的6种属性(最后一项为可选):

    driver JDBC驱动名
    url JDBC URL地址
    username 数据库用户名
    password 数据库密码
    defaultTransactionIsolationLevel 默认的链接事务隔离级别
    driver.encoding utf-8(可选项)

    POOLED:这是JDBC链接对象的数据源连接池的实现,用来避免创建新的链接实例时必要的连接和认证时间。适用于当前Web应用程序用来快速响应请求

    这种类型的数据源除了需要配置UNPOOLED中的基础配置外,还可以配置下面的内容:

    poolMaximumActiveConnections 在任意时间正在使用链接的数量
    poolMaximumIdleConnections 任意时间存在的空闲连接数
    poolMaximumCheckoutTime 在被强制返回之前,连接池中被检查的时间,默认值为20000毫秒
    poolTimeToWait 给连接池一个打印日志状态机会的低层次设置,还有重新尝试获取连接,这些情况往往会需要很长时间。为了避免连接池没有配置时静默失败。默认值20000毫秒
    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没有返回结果时,直接以初始上下文为环境来查找。

    和其他数据源配置类似,他可以通过名“env.”的前缀来直接向初始上下文发送属性,比如:

    env.encoding=UTF8

     

  • 相关阅读:
    第四次实验报告
    第三次实验报告
    第五章 循环结构课后反思
    第二次实验报告
    第一次实验报告
    第一次作业
    第九章实验报告(构造数据类型)
    第八章实验报告(指针实验)
    第七章实验报告(数组实验)
    第六章 函数和宏定义实验(2)
  • 原文地址:https://www.cnblogs.com/1And0/p/5884505.html
Copyright © 2011-2022 走看看