论坛首页 Java企业应用论坛

请教 Hibernate 和 DAO 的一个问题

浏览 3205 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2005-04-18  
DAO
我一直使用的是 jakatar 的 Torque(现在可能已经转到 db.apache.org 了)。Torque 也可勉强算是 jdo 的一种实现。当时 jdo 还没有一个成形的标准。
Torque的实现机制是根据 数据库表 生成 Object 和 ObjectPeer,Object 就是一个继承指定类的  bean。 ObjectPeer 类似于一个util,提供很多静态方法操作(doSelect, doUpdate, doInsert .....)。调用起来很想jdo,例如一个简单的 Message 对象的保存,代码如下:

Message message = new Message();
message.setSubject(subject);
message.setBody(body);
.....
message.save();

Torque 有很多优点,当然也有很多缺点,现在看起来已经有些过时了。我的疑问主要是这样:

比如一个 列出所有消息的 程序,我使用 MessagePeer.doSelect() 方法得到一个 Message Object 的 List ,然后在jsp或者velocity中 显示出来。这应该是一个很常见的应用。 通常列表页面只显示有限的内容,比如i,subject,date 等等就够了,并不需要 body 的内容。但是 MessagePeer.doSelect() 的实现中构造返回的 Message 对象的时候还是将 body 的内容从数据库取了出来。当 Body 很大的时候,这对性能会是一个不小的影响。如果不使用 Torque, 直接用 jdbc,性能也许会提高,缺点当然就是不面向对象。

我对Hibernate并没有深入的了解,但我想与Toruqe相比在实际运用中应该是类似的。想请教Hbernate 的高手,Hibernate 有处理此类应用的优化措施吗?

我也参考了 ibatis, 在 xml 配置中设置两个 sql 语句,一个取 body, 一个不取,可算做一种优化的办法。也想听听大家的意见。
   发表时间:2005-04-18  
String Hql = "select m.id,m.title from Message m";
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics