您的位置:首页 > 其它

过滤器方式打开Hibernate_session

2010-09-21 21:19 330 查看
Opensessioninview 模式:

执行原理:
•一进来就打开session ,进入servlet执行进入dao中获取数据。Dao 中的session对应当前的session ,所以要获取当前的session ,如 :
Session session = sessionFactory.getCurrentSession();
•获取数据之后来到filter中执行china.doFilter(request,response)语句。
•来到jsp页面显示数据之后返回拦截器filter关闭session

doFilter()方法的具体实现:

Public void doFilter(HttpServletRequest request,HtppServletResponse response, …)
{
Session session = null;
Transaction tx = null;

Session = sessionFactory.getCurrentSession ();
tx = session.beginTransation();
Chian.doFilter(request,response);
Tx.commit();
Session.close();
}

使用过滤器方式:
好处: 在不同页面中需要或不需要数据,可以通过延迟关闭session来获取页面中所需要的数据。
缺点:导致session的开启和关闭的时间太长,占用线程,如果网络的并发量很大,等待线程的session会出现列队现象。

线程thread:
线程解决事物问题,两个SQL语句确定

打开session的两种方式:
•Session session  = sessionFactory.OpenSession();
•设置Hibernate.cfg.xml文件属性方式:
<property name = “hibernate.current_session_context_class“ >thread</property>

Hibernate 中的HQL查询

Hibernate 中的查询方式分为两种:

•HQL查询
面向对象的查询方式,Can  not transit  Object . Attribute come scratch
•对象查询(Criteria)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: