执行几次查询之后就不能查询了,页面不动了

每执行依次查询,控制台就有这样的警告

java代码如下:

代码
  1. public class Employee_sortDAOImpl extends HibernateDaoSupport implements Employee_sortDAO {   
  2.       
  3.    public int getEmployee_sortCount() throws HibernateException {          
  4.         String querySentence = "SELECT count(*) FROM Employee_sort_info";   
  5.         List list = this.getHibernateTemplate().find(querySentence);   
  6.         Integer count = (Integer) list.get(0);   
  7.         return count;   
  8.     }   
  9.     public List getEmployee_sortByPage(Page page) throws HibernateException {   
  10.         String querySentence = "FROM Employee_sort_info";   
  11.         Query query = getSession().createQuery(querySentence);   
  12.         query.setFirstResult(page.getBeginIndex()).setMaxResults(page.getEveryPage());   
  13.         return query.list();   
  14.     }   
  15.   
  16. }  
<script type="text/javascript">render_code();</script>

 

警告: finalizing with closed connection
2006-9-18 14:38:26 org.hibernate.jdbc.ConnectionManager finalize

执行几次查询之后就不能查询了,页面不动了,是因为connection没有关闭吗

问题已经解决了,谢谢哈
修改如下:

代码
  1. public class Employee_sortDAOImpl extends HibernateDaoSupport implements  
  2.         Employee_sortDAO {     
  3.     public int getEmployee_sortCount() throws HibernateException {         
  4.         String querySentence = "SELECT count(*) FROM Employee_sort_info";   
  5.         List list = this.getHibernateTemplate().find(querySentence);   
  6.         Integer count = (Integer) list.get(0);   
  7.         return count;   
  8.     }   
  9.     public List getEmployee_sortByPage(Page page) throws HibernateException {   
  10.         String querySentence = "FROM Employee_sort_info";   
  11.         Session session=this.getHibernateTemplate().getSessionFactory() .openSession();   
  12.         Query query = session.createQuery(querySentence);   
  13.         query.setFirstResult(page.getBeginIndex()).setMaxResults(page.getEveryPage());         
  14.         List list = query.list();   
  15.         session.close();   
  16.         return list;   
  17.     }   
  18. }   
<script type="text/javascript">render_code();</script>

 

还有个问题:如果要实现如下功能,但是让它自己管理session,如何解决,我没有找到HibernateTemplate里面有类似setFirstResult和setMaxResults的方法啊

代码
  1. public List getEmployee_sortByPage(Page page) throws HibernateException {   
  2.         String querySentence = "FROM Employee_sort_info";      
  3.         Query query = this.getHibernateTemplate().getSessionFactory().openSession().createQuery(querySentence);   
  4.         query.setFirstResult(page.getBeginIndex()).setMaxResults(page.getEveryPage());         
  5.         return query.list();           
  6.     }  
<script type="text/javascript">render_code();</script>

 

上面的问题都已经解决,谢谢各位,代码如下:

 

代码
  1. public List getEmployee_sortByPage(final Page page) throws HibernateException {            
  2.         return (List)getHibernateTemplate().execute(   
  3.                 new HibernateCallback() {   
  4.                     public Object doInHibernate(Session session) throws HibernateException {   
  5.                         String querySentence = "FROM Employee_sort_info";      
  6.                         Query query = session.createQuery(querySentence);   
  7.                         query.setFirstResult(page.getBeginIndex()).setMaxResults(page.getEveryPage());   
  8.                         return query.list();   
  9.                     }   
  10.                 }   
  11.             );         
  12.     }   
<script type="text/javascript">render_code();</script>

 

上面的虽然解决了问题,但是太难看了,加了OpenSessionInViewInterceptor方便啊,session可以不管了,也不用使用难看的callback了,呵呵

 

代码
  1. <!-- SimpleUrlHandlerMapping -->       
  2.     <bean id="simpleUrlMapping" class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">  
  3.         <property name="interceptors" ref="openSessionInViewInterceptor"/>         
  4.         <property name="mappings">  
  5.           <props>         
  6.              。。。                
  7.           </props>       
  8.         </property>  
  9.     </bean>    
  10.        
  11.     <bean id="openSessionInViewInterceptor"  
  12.           class="org.springframework.orm.hibernate3.support.OpenSessionInViewInterceptor">  
  13.         <property name="sessionFactory" ref="sessionFactory"/>  
  14.     </bean>  
<script type="text/javascript">render_code();</script>

 

 

代码
  1. public class Employee_sortDAOImpl extends HibernateDaoSupport implements  
  2.         Employee_sortDAO {     
  3.     public int getEmployee_sortCount() throws HibernateException {   
  4.         String querySentence = "SELECT count(*) FROM Employee_sort_info";   
  5.         List list = this.getHibernateTemplate().find(querySentence);   
  6.         Integer count = (Integer) list.get(0);   
  7.         return count;   
  8.     }   
  9.     public List getEmployee_sortByPage(Page page) throws HibernateException {   
  10.         String querySentence = "FROM Employee_sort_info";                  
  11.         Query query = this.getSession().createQuery(querySentence);   
  12.         query.setFirstResult(page.getBeginIndex()).setMaxResults(page.getEveryPage());         
  13.         return query.list();       
  14.     }  
 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值