明辉手游网中心:是一个免费提供流行视频软件教程、在线学习分享的学习平台!

对象映射就这么容易

[摘要]像 Hibernate 和 OJB 之类的对象映射工具都非常风行——并且应当如此。这些工具将 JDBC 从 JDBC 程序设计中分离出来,从而使得编写数据库访问代码如同处理文件 I/O 一样简单。 最近一个有影响力的对象映射工具是iBATIS-Database Layer。iBATIS 不同于其...
像 Hibernate 和 OJB 之类的对象映射工具都非常风行——并且应当如此。这些工具将 JDBC 从 JDBC 程序设计中分离出来,从而使得编写数据库访问代码如同处理文件 I/O 一样简单。



最近一个有影响力的对象映射工具是iBATIS-Database Layer。iBATIS 不同于其它对象映射工具的地方在于它不是将对象映射到数据库,而是将 SQL 映射为对象,反之将对象映射为 SQL。简单的映射基础使得具有 Java 和 SQL 经验的开发人员很容易开始使用 iBATIS。

iBATIS-Database Layer 的核心是 XML 文件,例如:

<mapped-statement name="loadEmployee" result-class="tips.Employee">
select
emp_id as id,
last_name as lastName,
first_name as firstName,
title as title,
from employees

where emp_id = #value#
</mapped-statement>

创建一个 Employee 对象的动作直接映射到一个 SQL 语句。

创建能够执行 SQL 的对象的方式如下:

public Employee getEmployeeById(Long id) {
Employee employee = (Employee) sqlMap.executeQueryForObject("loadEmployee",
id);
}

iBATIS-Database Layer 支持对各种手工数据库操作动作的映射:插入、更新及删除。它还具有其它对象映射工具的优点,比如说多数据库支持、数据源配置、将依赖对象映射为属性等等。使用 iBATIS 的另一个优点是其学习曲线比较温和,因为你已经了解了SQL,这就相当于了解了 iBATIS 的一半。然而,有其好处的同时也会有其(最起码是警告级的)坏处。

因为你是自己编写 SQL,所以你可能会在 SQL 中使用针对某个特定数据库的优化技术。使用针对特定数据库的 SQL 意味着如果你决定更换数据库那么你就必须移值你的映射。

即使有这种警告,iBATIS-Database Layer 依然值得考虑。自己衡量一下,看看这个框架对你是否有所帮助。