正在阅读:使用模板模式简化DAO操作Hibernate使用模板模式简化DAO操作Hibernate

2005-09-20 09:57 出处: 作者:reverocean 责任编辑:moningfeng

  1. 我们现来实现一个Hibernate模板:

package kick.hibernate;

import net.sf.hibernate.HibernateException;
import net.sf.hibernate.Session;
import net.sf.hibernate.Transaction;

public class HibernateTemplate{
public static Object run(HibernateCallback callback) throws HibernateException{
Session session = null;
Transaction tx = null;
try {
session = HibernateSessionutil.currentSession();
tx = session.beginTransaction();
Object result = callback.execute(session);
tx.commit();
session.flush();
return result;
} catch (HibernateException e) {
tx.rollback();
return null;
} finally {
HibernateSessionutil.closeSession();
}
}


  这里类很简单,就是使用一个实现HibernateCallBack接口的一个回掉类,在调用的时候根据具体的需求实现HibernateCallBack类。

  2. 回掉接口HibernateCallBack:

package kick.hibernate;

import net.sf.hibernate.HibernateException;
import net.sf.hibernate.Session;

public interface HibernateCallBack {
Object execute(Session session)throws HibernateException;
}


  好了,到此为止我们就可以使用这个模板了,可以用如下的方式使用:

HibernateTemplate.run(new HibernateCallback() {
public Object execute(Session session) throws HibernateException {
session.save(user);
return null;
}
});


  看看,是不是省去了很多代码?

  不过这还没有达到想Spring里面那样简单,不要着急,“面包会有的”,我们会达到的。
键盘也能翻页,试试“← →”键

相关文章

关注我们

最新资讯离线随时看 聊天吐槽赢奖品