Spring--(模拟HiberanteTemplate、HibernateCallBack实现)

来源:互联网 发布:加藤小雪相貌知乎 编辑:程序博客网 时间:2024/06/05 20:49

Spring框架提供了HibernateTemplate模版以简化编程,模版封装了事务之前(包括获取session、开启事务等等操作)以及事务之后(包括关闭事务、异常捕获及处理等操作),我们用的时候只需写需要的逻辑代码。

MyHibernateCallBack.java:

package com.dw.template;import org.hibernate.Session;public interface MyHibernateCallBack {  public void doInHibernate(Session session);}

MyHibernateTemplate.java:

package com.dw.template;import org.hibernate.Session;import org.hibernate.SessionFactory;public class MyHibernateTemplate {  public void executeWithNativeSession(MyHibernateCallBack callBack) {Session session = getSession();session.beginTransaction();callBack.doInHibernate(session);session.getTransaction().commit();session.close();   }    public  void save(final Object object) {this.executeWithNativeSession(new MyHibernateCallBack() {@Overridepublic void doInHibernate(Session session) {session.save(object);}});  }    public Session getSession() {return null;  }}