@@ -1012,7 +1012,7 @@ public class GenericTypeHandler<E extends MyObject> extends BaseTypeHandler<E> {
1012
1012
</typeHandlers>
1013
1013
]]> </source >
1014
1014
<p >但是怎样能将同样的 <code >Enum</code > 既映射成字符串又映射成整形呢?</p >
1015
- <p >自动映射器(auto-mapper)会自动地选用 <code >EnumOrdinalTypeHandler</code > 来处理,所以如果我们想用回旧的序数型的 <code >EnumTypeHandler</code >,就非要为那些 SQL 语句显式地设置要用到的类型处理器不可。</p >
1015
+ <p >自动映射器(auto-mapper)会自动地选用 <code >EnumOrdinalTypeHandler</code > 来处理,所以如果我们想用普通的 <code >EnumTypeHandler</code >,就非要为那些 SQL 语句显式地设置要用到的类型处理器不可。</p >
1016
1016
<p >(下一节才开始讲映射器文件,所以如果是首次阅读该文档,你可能需要先越过这一步,过会再来看。)</p >
1017
1017
<source ><![CDATA[ <!DOCTYPE mapper
1018
1018
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
@@ -1236,9 +1236,9 @@ SqlSessionFactory factory = sqlSessionFactoryBuilder.build(reader,properties);]]
1236
1236
</ul >
1237
1237
<p >有三种内建的数据源类型(也就是 type=”???”):</p >
1238
1238
<p >
1239
- <strong >无连接池(UNPOOLED)</strong >– 这个数据源的实现是每次被请求时简单打开和关闭连接。它有一点慢,这是对简单应用程序的一个很好的选择,因为它不需要及时的可用连接。不同的数据库对这个的表现也是不一样的,所以对某些数据库来说配置数据源并不重要,这个配置也是闲置的 。UNPOOLED 类型的数据源仅仅需要配置以下 5 种属性:</p >
1239
+ <strong >无连接池(UNPOOLED)</strong >– 这个数据源的实现是每次被请求时简单打开和关闭连接。它有一点慢,这是对简单应用程序的一个很好的选择,因为它不需要及时的可用连接。不同的数据库对这个的表现也是不一样的,所以对某些数据库来说使用连接池并不重要,这个配置也是理想的 。UNPOOLED 类型的数据源仅仅需要配置以下 5 种属性:</p >
1240
1240
<ul >
1241
- <li ><code >driver</code > – 这是 JDBC 驱动的 Java 类的完全限定名(如果你的驱动包含,它也不是数据源类 )。
1241
+ <li ><code >driver</code > – 这是 JDBC 驱动的 Java 类的完全限定名(并不是JDBC驱动中可能包含的数据源类 )。
1242
1242
</li >
1243
1243
<li ><code >url</code > – 这是数据库的 JDBC URL 地址。
1244
1244
</li >
@@ -1249,12 +1249,12 @@ SqlSessionFactory factory = sqlSessionFactoryBuilder.build(reader,properties);]]
1249
1249
<li ><code >defaultTransactionIsolationLevel</code > – 默认的连接事务隔离级别。
1250
1250
</li >
1251
1251
</ul >
1252
- <p >作为可选项,你也可以传递 properties 给数据库驱动 。要这样做,属性的前缀以 “driver.”开头 ,例如:
1252
+ <p >作为可选项,你也可以传递属性给数据库驱动 。要这样做,属性的前缀为 “driver.”,例如:
1253
1253
</p >
1254
1254
<ul >
1255
1255
<li ><code >driver.encoding=UTF8</code ></li >
1256
1256
</ul >
1257
- <p >这样就会传递以值 “UTF8” 来传递属性“encoding”,它是通过DriverManager .getConnection(url,driverProperties)方法传递给数据库驱动的 。
1257
+ <p >可以通过DriverManager .getConnection(url,driverProperties)方法传递值为“UTF8”的“encoding”属性给数据库驱动 。
1258
1258
</p >
1259
1259
<p >
1260
1260
<strong >有连接池(POOLED)</strong >– 这种数据源的实现利用“池”的概念将 JDBC 连接对象组织起来,避免了创建新的连接实例时所必需的初始化和认证时间。这是一种使得并发 Web 应用快速响应请求的流行处理方式。
@@ -1268,9 +1268,9 @@ SqlSessionFactory factory = sqlSessionFactoryBuilder.build(reader,properties);]]
1268
1268
</li >
1269
1269
<li ><code >poolMaximumCheckoutTime</code > – 在被强制返回之前,池中连接被检出(checked out)时间,默认值:20000 毫秒(即 20 秒)
1270
1270
</li >
1271
- <li ><code >poolTimeToWait</code > – 这是一个低层设置 ,如果获取连接花费的相当长的时间,它会给连接池打印日志并重新尝试获取一个连接的机会(避免在误配置的情况下一直安静的失败),默认值:20000 毫秒(即 20 秒)。
1271
+ <li ><code >poolTimeToWait</code > – 这是一个底层设置 ,如果获取连接花费的相当长的时间,它会给连接池打印日志并重新尝试获取一个连接的机会(避免在误配置的情况下一直安静的失败),默认值:20000 毫秒(即 20 秒)。
1272
1272
</li >
1273
- <li ><code >poolPingQuery</code > – 发送到数据的侦测查询 ,用来检验连接是否处在正常工作秩序中并准备接受请求。默认是“NO PING QUERY SET”,这会导致多数数据库驱动失败时带有一个恰当的错误消息。
1273
+ <li ><code >poolPingQuery</code > – 发送到数据库的侦测查询 ,用来检验连接是否处在正常工作秩序中并准备接受请求。默认是“NO PING QUERY SET”,这会导致多数数据库驱动失败时带有一个恰当的错误消息。
1274
1274
</li >
1275
1275
<li ><code >poolPingEnabled</code > – 是否启用侦测查询。若开启,也必须使用一个可执行的 SQL 语句设置 <code >poolPingQuery</code > 属性(最好是一个非常快的 SQL),默认值:false。
1276
1276
</li >
@@ -1286,12 +1286,12 @@ SqlSessionFactory factory = sqlSessionFactoryBuilder.build(reader,properties);]]
1286
1286
<li ><code >data_source</code > – 这是引用数据源实例位置的上下文的路径。提供了 initial_context 配置时会在其返回的上下文中进行查找,没有提供时则直接在 InitialContext 中查找。
1287
1287
</li >
1288
1288
</ul >
1289
- <p >和其他数据源配置类似,可以通过名为 “env.”的前缀直接向初始上下文发送属性(send properties) 。比如:
1289
+ <p >和其他数据源配置类似,可以通过添加前缀 “env.”直接把属性传递给初始上下文 。比如:
1290
1290
</p >
1291
1291
<ul >
1292
1292
<li ><code >env.encoding=UTF8</code ></li >
1293
1293
</ul >
1294
- <p >这就会在初始化时以值 “UTF8”向初始上下文的构造方法传递名为 “encoding”的属性 。
1294
+ <p >这就会在初始上下文(InitialContext)实例化时往它的构造方法传递值为 “UTF8”的 “encoding”属性 。
1295
1295
</p >
1296
1296
1297
1297
<p >
@@ -1304,7 +1304,7 @@ SqlSessionFactory factory = sqlSessionFactoryBuilder.build(reader,properties);]]
1304
1304
}]]> </source >
1305
1305
1306
1306
<p >
1307
- <code >org.apache.ibatis.datasource.unpooled.UnpooledDataSourceFactory</code > 可被用作父类来构建新的数据源适配器,比如下面这段插入 C3P0 所必需的代码 :
1307
+ <code >org.apache.ibatis.datasource.unpooled.UnpooledDataSourceFactory</code > 可被用作父类来构建新的数据源适配器,比如下面这段插入 C3P0 数据源所必需的代码 :
1308
1308
</p >
1309
1309
1310
1310
<source ><![CDATA[ import org.apache.ibatis.datasource.unpooled.UnpooledDataSourceFactory;
@@ -1343,9 +1343,9 @@ public class C3P0DataSourceFactory extends UnpooledDataSourceFactory {
1343
1343
<property name="Oracle" value="oracle" />
1344
1344
</databaseIdProvider>]]> </source >
1345
1345
1346
- <p >在有 properties 时,DB_VENDOR databaseIdProvider 元素会搜索所返回数据库产品名称的第一个对应键值,如果没有匹配的将会返回 null。在这个例子中,如果 <code >getDatabaseProductName()</code > 返回“Oracle (DataDirect)”,databaseId 将被设置为“oracle”。</p >
1346
+ <p >在有 properties 时,DB_VENDOR databaseIdProvider 的将被设置为第一个能匹配数据库产品名称的属性键对应的值,如果没有匹配的属性将会设置为 “ null” 。在这个例子中,如果 <code >getDatabaseProductName()</code > 返回“Oracle (DataDirect)”,databaseId 将被设置为“oracle”。</p >
1347
1347
1348
- <p >你可以通过实现接口 <code >org.apache.ibatis.mapping.DatabaseIdProvider</code > 并在 mybatis-config.xml 中注册来构建自己的 database provider :</p >
1348
+ <p >你可以通过实现接口 <code >org.apache.ibatis.mapping.DatabaseIdProvider</code > 并在 mybatis-config.xml 中注册来构建自己的 DatabaseIdProvider :</p >
1349
1349
1350
1350
<source ><![CDATA[ public interface DatabaseIdProvider {
1351
1351
void setProperties(Properties p);
0 commit comments