最好的对象映射就这么简单

ZDNet软件频道 时间:2004-04-16 作者:Builder.com |  我要评论()
本文关键词:javatips
像 Hibernate 和 OJB 之类的对象映射工具都非常风行——并且应当如此。这些工具将 JDBC 从 JDBC 程序设计中分离出来,从而使得编写数据库访问代码如同处理文件 I/O 一样简单。
本文译自Builder.com,未经许可请勿转载

像 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 依然值得考虑。自己衡量一下,看看这个框架对你是否有所帮助。


本文作者: David Petersheim是Genscape公司的一位资深Java 开发人员。他设计和开发服务器端应用程序来获取和处理实时能源数据。


责任编辑:李宁

欢迎评论投稿

百度大联盟认证黄金会员Copyright© 1997- CNET Networks 版权所有。 ZDNet 是CNET Networks公司注册服务商标。
中华人民共和国电信与信息服务业务经营许可证编号:京ICP证010391号 京ICP备09041801号-159
京公网安备:1101082134