diff --git a/src/site/zh/xdoc/configuration.xml b/src/site/zh/xdoc/configuration.xml index 609fed1451f..26367ae3334 100644 --- a/src/site/zh/xdoc/configuration.xml +++ b/src/site/zh/xdoc/configuration.xml @@ -1012,7 +1012,7 @@ public class GenericTypeHandler extends BaseTypeHandler { ]]>

但是怎样能将同样的 Enum 既映射成字符串又映射成整形呢?

-

自动映射器(auto-mapper)会自动地选用 EnumOrdinalTypeHandler 来处理,所以如果我们想用回旧的序数型的 EnumTypeHandler,就非要为那些 SQL 语句显式地设置要用到的类型处理器不可。

+

自动映射器(auto-mapper)会自动地选用 EnumOrdinalTypeHandler 来处理,所以如果我们想用普通的 EnumTypeHandler,就非要为那些 SQL 语句显式地设置要用到的类型处理器不可。

(下一节才开始讲映射器文件,所以如果是首次阅读该文档,你可能需要先越过这一步,过会再来看。)

有三种内建的数据源类型(也就是 type=”???”):

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

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

-

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

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

-

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

可以通过DriverManager.getConnection(url,driverProperties)方法传递值为“UTF8”的“encoding”属性给数据库驱动。

有连接池(POOLED)– 这种数据源的实现利用“池”的概念将 JDBC 连接对象组织起来,避免了创建新的连接实例时所必需的初始化和认证时间。这是一种使得并发 Web 应用快速响应请求的流行处理方式。 @@ -1268,9 +1268,9 @@ SqlSessionFactory factory = sqlSessionFactoryBuilder.build(reader,properties);]]

  • poolMaximumCheckoutTime – 在被强制返回之前,池中连接被检出(checked out)时间,默认值:20000 毫秒(即 20 秒)
  • -
  • poolTimeToWait – 这是一个低层设置,如果获取连接花费的相当长的时间,它会给连接池打印日志并重新尝试获取一个连接的机会(避免在误配置的情况下一直安静的失败),默认值:20000 毫秒(即 20 秒)。 +
  • poolTimeToWait – 这是一个底层设置,如果获取连接花费的相当长的时间,它会给连接池打印日志并重新尝试获取一个连接的机会(避免在误配置的情况下一直安静的失败),默认值:20000 毫秒(即 20 秒)。
  • -
  • poolPingQuery – 发送到数据的侦测查询,用来检验连接是否处在正常工作秩序中并准备接受请求。默认是“NO PING QUERY SET”,这会导致多数数据库驱动失败时带有一个恰当的错误消息。 +
  • poolPingQuery – 发送到数据库的侦测查询,用来检验连接是否处在正常工作秩序中并准备接受请求。默认是“NO PING QUERY SET”,这会导致多数数据库驱动失败时带有一个恰当的错误消息。
  • poolPingEnabled – 是否启用侦测查询。若开启,也必须使用一个可执行的 SQL 语句设置 poolPingQuery 属性(最好是一个非常快的 SQL),默认值:false。
  • @@ -1286,12 +1286,12 @@ SqlSessionFactory factory = sqlSessionFactoryBuilder.build(reader,properties);]]
  • data_source – 这是引用数据源实例位置的上下文的路径。提供了 initial_context 配置时会在其返回的上下文中进行查找,没有提供时则直接在 InitialContext 中查找。
  • -

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

    和其他数据源配置类似,可以通过添加前缀“env.”直接把属性传递给初始上下文。比如:

    -

    这就会在初始化时以值“UTF8”向初始上下文的构造方法传递名为“encoding”的属性。 +

    这就会在初始上下文(InitialContext)实例化时往它的构造方法传递值为“UTF8”的“encoding”属性。

    @@ -1304,7 +1304,7 @@ SqlSessionFactory factory = sqlSessionFactoryBuilder.build(reader,properties);]] }]]>

    - org.apache.ibatis.datasource.unpooled.UnpooledDataSourceFactory 可被用作父类来构建新的数据源适配器,比如下面这段插入 C3P0 所必需的代码: + org.apache.ibatis.datasource.unpooled.UnpooledDataSourceFactory 可被用作父类来构建新的数据源适配器,比如下面这段插入 C3P0 数据源所必需的代码:

    ]]> -

    在有 properties 时,DB_VENDOR databaseIdProvider 元素会搜索所返回数据库产品名称的第一个对应键值,如果没有匹配的将会返回 null。在这个例子中,如果 getDatabaseProductName() 返回“Oracle (DataDirect)”,databaseId 将被设置为“oracle”。

    +

    在有 properties 时,DB_VENDOR databaseIdProvider 的将被设置为第一个能匹配数据库产品名称的属性键对应的值,如果没有匹配的属性将会设置为 “null”。在这个例子中,如果 getDatabaseProductName() 返回“Oracle (DataDirect)”,databaseId 将被设置为“oracle”。

    -

    你可以通过实现接口 org.apache.ibatis.mapping.DatabaseIdProvider 并在 mybatis-config.xml 中注册来构建自己的 database provider:

    +

    你可以通过实现接口 org.apache.ibatis.mapping.DatabaseIdProvider 并在 mybatis-config.xml 中注册来构建自己的 DatabaseIdProvider: