首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

hibernate session 过滤器统制

2012-11-04 
hibernate session 过滤器控制最近做一个公司项目的Demo,使用技术为jsp+dwr+hibernate,因为该Demo中所用的

hibernate session 过滤器控制

最近做一个公司项目的Demo,使用技术为jsp+dwr+hibernate,因为该Demo中所用的表多,有一对一,一对多和多对一的关系,所以利用hibernate的延迟加载(lazy="true")对性能的提高相当重要,但随之带来的session管理更为重要,弄不好常出现延迟加载异常,在这里我利用了Filter 来处理session的close的,相关代码如下:

?

1.HibernateSessionFactory.java(Eclipse自动生成,通过ThreadLocal将session的非线程安全变成安全)

?HibernateSessioniFactory主要负责session的开和关。

?

2.HibernateSessionFilter(要编写的过滤器,主要处理session的关闭)

public class UserDao  implements BaseDao {private static final Logger log = Logger.getLogger(UserDao.class);    private  Session session  ;   public UserDao(){       log.info("UserDao construct is running") ;           session = SessionFactory.getSession() ;    }    @Overridepublic boolean save(Object o) {log.info("UserDao save is running ");boolean flag = false ;Transaction tran = null;try {tran = session.beginTransaction();session.save(o);tran.commit();flag = true ;} catch (Exception e) {log.error("error save user");flag = false ;if (tran != null) {try {tran.rollback();} catch (HibernateException e1) {log.error("save Transaction rollback is error "+e1.getMessage()) ;}}e.printStackTrace();}finally{//session.close() ;//这里就不需要在关闭session直接交给filter来处理}return flag ;}}

??? 以上是本人的学习总结,有误之处请多多指教,希望对刚学hibernate的同志们有所帮助。

?

?

?

1 楼 ariyue 2008-11-07   高手,学习中!

热点排行