diff --git a/src/site/zh/xdoc/configuration.xml b/src/site/zh/xdoc/configuration.xml
index 3524c67c237..51678057408 100644
--- a/src/site/zh/xdoc/configuration.xml
+++ b/src/site/zh/xdoc/configuration.xml
@@ -57,7 +57,7 @@
-
+
这些属性都是可外部配置且可动态替换的,既可以在典型的 Java 属性文件中配置,亦可通过 properties 元素的子元素来传递。例如:
-
+
调整 settings 中的设置是非常关键的,它们会改变 MyBatis 的运行时行为。下表描述了设置中各项的意图、默认值等。
@@ -393,7 +393,7 @@ SqlSessionFactory factory = sqlSessionFactoryBuilder.build(reader, environment,
]]>
-
+
类型别名是为 Java 类型命名的一个短的名字。它只和 XML 配置有关,存在的意义仅在于用来减少类完全限定名的冗余。例如:
- 每一个在包 domain.blog
中的 Java Bean,在没有注解的情况下,会使用 Bean 的首字母小写的非限定类名来作为它的别名。比如 domain.blog.Author
的别名为 Author
;若有注解,则别名为其注解值。看下面的例子:
+ 每一个在包 domain.blog
中的 Java Bean,在没有注解的情况下,会使用 Bean 的首字母小写的非限定类名来作为它的别名。比如 domain.blog.Author
的别名为 author
;若有注解,则别名为其注解值。看下面的例子:
-
+
无论是 MyBatis 在预处理语句(PreparedStatement)中设置一个参数时,还是从结果集中取出一个值时,都会用类型处理器将获取的值以合适的方式转换成 Java 类型。下表描述了一些默认的类型处理器。
@@ -1012,7 +1012,7 @@ public class GenericTypeHandler extends BaseTypeHandler {
]]>
但是怎样能将同样的 Enum
既映射成字符串又映射成整形呢?
- 自动映射器(auto-mapper)会自动地选用 EnumOrdinalTypeHandler
来处理,所以如果我们想用回旧的序数型的 EnumTypeHandler
,就非要为那些 SQL 语句显式地设置要用到的类型处理器不可。
+ 自动映射器(auto-mapper)会自动地选用 EnumOrdinalTypeHandler
来处理,所以如果我们想用普通的 EnumTypeHandler
,就非要为那些 SQL 语句显式地设置要用到的类型处理器不可。
(下一节才开始讲映射器文件,所以如果是首次阅读该文档,你可能需要先越过这一步,过会再来看。)
- org.apache.ibatis.datasource.unpooled.UnpooledDataSourceFactory
可被用作父类来构建新的数据源适配器,比如下面这段插入 C3P0 所必需的代码:
+ org.apache.ibatis.datasource.unpooled.UnpooledDataSourceFactory
可被用作父类来构建新的数据源适配器,比如下面这段插入 C3P0 数据源所必需的代码:
-
+
MyBatis 可以根据不同的数据库厂商执行不同的语句,这种多厂商的支持是基于映射语句中的 databaseId
属性的。MyBatis 会加载不带 databaseId
属性和带有匹配当前数据库 databaseId
属性的所有语句。如果同时找到带有 databaseId
和不带 databaseId
的相同语句,则后者会被舍弃。为支持多厂商特性只要像下面这样在 mybatis-config.xml 文件中加入 databaseIdProvider
即可:
@@ -1343,9 +1343,9 @@ public class C3P0DataSourceFactory extends UnpooledDataSourceFactory {
]]>
- 在有 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:
-
+
既然 MyBatis 的行为已经由上述元素配置完了,我们现在就要定义 SQL 映射语句了。但是首先我们需要告诉 MyBatis 到哪里去找到这些语句。Java 在自动查找这方面没有提供一个很好的方法,所以最佳的方式是告诉 MyBatis 到哪里去找映射文件。你可以使用相对于类路径的资源引用,或完全限定资源定位符(包括 file:///
的 URL),或类名和包名等。例如:
diff --git a/src/site/zh/xdoc/index.xml b/src/site/zh/xdoc/index.xml
index a29692ea5db..5fe93c65aa7 100644
--- a/src/site/zh/xdoc/index.xml
+++ b/src/site/zh/xdoc/index.xml
@@ -43,12 +43,12 @@
其他语言版本(Users can read about MyBatis in following translations):
Do you want to read about MyBatis in your own native language? Fill an issue providing patches with your
mother tongue documentation!
diff --git a/src/site/zh/xdoc/sqlmap-xml.xml b/src/site/zh/xdoc/sqlmap-xml.xml
index 6dc7ddbd937..e8acc89da1e 100644
--- a/src/site/zh/xdoc/sqlmap-xml.xml
+++ b/src/site/zh/xdoc/sqlmap-xml.xml
@@ -73,7 +73,7 @@
下一部分将从语句本身开始来描述每个元素的细节。
-
+
查询语句是 MyBatis 中最常用的元素之一,光能把数据存到数据库中价值并不大,如果还能重新取出来才有用,多数应用也都是查询比修改要频繁。对每个插入、更新或删除操作,通常对应多个查询操作。这是 MyBatis 的基本原则之一,也是将焦点和努力放到查询和结果映射的原因。简单查询的 select 元素是非常简单的。比如:
@@ -204,7 +204,7 @@ ps.setInt(1,id);]]>
-
+
数据变更语句 insert,update 和 delete 的实现非常接近:
@@ -407,7 +407,7 @@ ps.setInt(1,id);]]>
]]>
-
+
前面的所有语句中你所见到的都是简单参数的例子,实际上参数是 MyBatis 非常强大的元素,对于简单的做法,大概 90% 的情况参数都很少,比如:
@@ -489,7 +489,7 @@ ps.setInt(1,id);]]>
-
+
resultMap 元素是 MyBatis 中最重要最强大的元素。它就是让你远离 90%的需要从结果
集中取出数据的 JDBC 代码的那个东西,
@@ -1637,7 +1637,7 @@ MyBatis 会从结果集中得到每条记录,
-
+
正如你在前面一节看到的,在简单的场景下,MyBatis可以替你自动映射查询结果。
@@ -1735,7 +1735,7 @@ MyBatis 会从结果集中得到每条记录,
-
+
MyBatis 包含一个非常强大的查询缓存特性,它可以非常方便地配置和定制。MyBatis 3
中的缓存实现的很多改进都已经实现了,使得它更加强大而且易于配置。