hibernate分页 tomcat卡死

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了hibernate分页 tomcat卡死相关的知识,希望对你有一定的参考价值。

代码如图

我把session缓存clean()了啊
每次经过 7 次翻页后 tomcat就卡死了 浏览器一直等待响应

代码没问题的情况下:一个是tomcat内存的问题,另一个是你连接池连接数的问题,查看一下吧追问

能详细一点吗 我以前写jdbc分页的时候 sql语句和这一模一样 没有发生过这种现象

追答

内存问题是:你的sql可能没问题,到第七次的时候数据量过大,内存溢出,如果
sql问题的话,这不应该,建议检查下sql,看看每次查询的结果是否正确;

连接池连接数问题:每次连接池给容器一定数量的链接,当你的并发量告的时候,可能连接数不够使用,造成卡死,这问题我遇到过,改一下最小连接数就好了

参考技术A 那会还是你这个语句有点问题吧,你拿出第7次翻页的语句 ,在数据库跑下,看下效率如何,并做一些优化处理! 参考技术B 内存溢出,增加 tomcat的内存

hibernate 分页代码

在互联网中,分页技术的使用非常广泛,也是必须的。在hibernate中使用分页很方便,如下所示:

(1)setFirstResult(int firstResult):设置开始检索的对象,参数firstResult设置开始检索的起始对象。

(2) setMaxResults(int maxResults):设置每次检索返回的最大对象数。参数maxResults用于设置每次检索的返回对象数目。

具体参考代码如下:

public List findbypage(int pageNo, int pageSize)

{

String queryString="from student";

Query queryObject="session.createQuery(queryString)";

queryObject.setFirstResult((pageNo-1)*pageSize);

queryObject.setMaxResults(pageSize);

return queryObject.list();

}

在上述代码中,pageNo表示第几页,pageSize表示每页显示多少条数据。(pageNo-1)*pageSize为第pageNo页的第一条数据所在的位置编号,setFirstResult()方法绑定该参数,从该对象开始读取,setMaxResults()方法绑定参数pageSize,表示只读取pageSize个对象。最后查询结果集以List对象形式返回。

以上是关于hibernate分页 tomcat卡死的主要内容,如果未能解决你的问题,请参考以下文章

Hibernate 映射文件的配置 核心文件的配置 一对一 一对多 多对多 hibernate实现分页 Hibernate中session的关闭问题总结

运行第二天出现hibernate的错误,org.hibernate.TransactionException: JDBC commit failed at org.hiber

一对一映射 Hibernate

初始 SessionFactory 创建 failed.java.lang.NoClassDefFoundError: org/hiber nate/cfg/Configuration

通用mapper的框架

Hibernate- Criteria 简易