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() {
@Override
public void doInHibernate(Session session) {
session.save(object);
}
});
}
public Session getSession() {
return null;
}
}