`
huzhiyong56
  • 浏览: 27636 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Hibernate 自定义查询卡死情况解决

 
阅读更多

    我们使用hibernate查询的时候经常会遇到多查询几次卡死的问题,其实这里主要是session不够用了,当每查询一次时就会创建一个session 如下面的一个简单分页查询

public List findPageService(int pageNow,int pageSize)
{ 
String hql="。。。。。。。。。。。。。";
Session session=getHibernateTemplate().getSessionFactory().openSession();
Query q= session.createQuery(hql);
int first=(pageNow-1)*pageSize;
q.setFirstResult(first);
q.setMaxResults(pageSize);
List list= q.list(); 
return list;
}

 

就会遇见这样的问题

解决办法很简单

我们都知道hibernateDAO 是继承 HibernateDaoSupport

我们就可以调用父类下面的releaseSession(Session)方法来舍弃这个session

这里session.close()和session.clear()方法是没有作用的 切记

所以上面的方法只要加一行代码就可以了

   

public List findPageService(int pageNow,int pageSize)
{ 
String hql="。。。。。。。。。。。。。";
Session session=getHibernateTemplate().getSessionFactory().openSession();
Query q= session.createQuery(hql);
int first=(pageNow-1)*pageSize;
q.setFirstResult(first);
q.setMaxResults(pageSize);
List list= q.list(); 
super.releaseSession(session); 

return list;
}

 

注意:如果有多对一关系的话这里我们需要设置<many-to-one>里的lazy属性为false

还有一种方法是用sping管理session方法

getHibernateTemplate().executeFind()包住查询代码就OK了,spring会自动插入关闭当前session的代码


分享到:
评论

相关推荐

    Hibernate.zip

    10. **hibernate-commons-annotations-5.0.1.Final.jar**:Hibernate的通用注解库,包含了一些用于描述实体类、关联、查询等的自定义注解,如@Entity、@Table、@Column等,简化了代码编写。 综上所述,"Hibernate....

    网络硬盘(Struts 2+Hibernate+Spring实现)

    通过HQL(Hibernate Query Language)或 Criteria API,可以编写数据库查询语句,提高代码的可读性和可维护性。 3. Spring:Spring框架提供了依赖注入(DI)和面向切面编程(AOP)等功能,增强了应用的灵活性和可...

    JAVAWML信息查询与后端信息发布系统实现-WML信息查询设计(源代码+LW).zip

    10. **LW(轻量级)组件**:"LW"可能是“Lightweight”的缩写,表示这套系统可能采用了轻量级的技术栈,比如使用了简单的框架或者自定义的解决方案,以适应移动设备的性能限制。 这个项目不仅是一个学习资源,也...

    ssh航空订票系统

    SSH航空订票系统是一款基于SSH(Struts2、Spring、Hibernate)框架开发的在线订票应用,主要用于模拟航空公司售票流程,提供用户购票、查询航班、管理个人信息等服务。SSH框架是Java Web开发中的一个经典组合,它将...

    JSP开发实用技术整理

    6.Hibernate查询(1) 4 7.网页中&lt;%if%&gt; 5 8.java简单的获取系统网卡mac地址 5 9. 增加tomcat的内存 6 10.JAVA获取系统当前的用户 7 11.javascript获取客户端网卡MAC地址和IP地址和计算机名 7 12.JAVA反射 8 13. ...

    简单会员管理系统

    在SSH2框架下,这可能通过Spring Security或者自定义的过滤器来实现。用户输入的账号和密码会与数据库中的记录进行比对,验证成功后授予相应的访问权限。 5. **用户管理**:用户管理模块包括用户注册、修改个人信息...

    java超市管理系统

    1. 商品管理:包括商品的添加、删除、修改和查询功能,支持批量导入和导出,便于商品信息的管理和更新。同时,系统还可以对商品分类进行管理,方便查找和展示商品。 2. 库存控制:实时监控商品库存,当库存低于预设...

    代码生成器(实测可行版, 可自行改造版).zip

    MyBatis的Mapper接口则提供了SQL查询和结果映射的功能。代码生成器会生成DAO接口和Mapper接口,以及它们的XML配置文件,用户只需填写具体的SQL语句即可。 6. **Hibernate与MyBatis的集成** Hibernate和MyBatis都是...

    配电线路智能巡检系统.pdf

    系统提供巡视卡自定义工具,方便完成每类设备巡视项的灵活定义。 4. 巡视计划管理:增加、修改、删除巡视计划,查询、导出巡视计划,生成一个压缩包文件供平板软件使用。 5. 巡视记录管理:巡视记录导入、查询,查看...

    java开发之SSS整合教程.继SSH,SSM之后,spring全家桶SSS问世,数据库采用SpringJDBC

    "Spring JDBC入门 - SangS - 博客园.url" 和 "SpringJdbc的几种不同的用法 - 低调开发 - ITeye技术网站.url" 可能包含了一些关于如何使用SpringJDBC的基本教程和高级技巧,包括批处理操作、动态SQL和自定义SQL查询等...

    JavaSE测试题.docx

    - **SSH框架**:Spring + Struts2 + Hibernate - 通常情况下,SSM框架更受现代开发者的青睐,因为它更轻量级且易于集成。 #### 2. 功能实现 - **添加书签**: - 需要录入书签的名称、链接、Tag和描述。 - Tag...

    ATM系统(图形界面版)

    数据库连接和操作通常会借助ORM(对象关系映射)框架,如Java的Hibernate或Python的SQLAlchemy,简化与数据库的交互。 总的来说,这个ATM系统(图形界面版)是一次综合性的编程实践,涵盖了用户认证、数据库操作、...

    speed:java ORM 框架

    2. MyBatis:MyBatis是另一种轻量级的ORM框架,它允许开发者自定义SQL,更灵活地控制查询。MyBatis将SQL语句写在XML配置文件或注解中,结合Mapper接口,提供了简便的数据访问方式。 3. Java Persistence API (JPA)...

    网吧管理系统

    9. **系统设置**:管理员可以自定义系统参数,如计费规则、折扣策略等。 在开发过程中,开发者可能会使用Spring框架来管理依赖,Hibernate或MyBatis用于数据库操作,以及Servlet和JSP来处理HTTP请求和生成动态网页...

    javaWeb计算机配件报价系统项目源码.zip

    【标题】:“javaWeb计算机配件报价系统项目源码”是一个基于JavaWeb技术开发的系统,主要用于计算机硬件配件的价格查询和管理。这个系统的核心是提供一个平台,使得用户和管理员能够方便地获取和更新配件的价格信息...

    java酒店管理系统

    开发者可以通过分析代码来学习如何构建RESTful API、如何使用JDBC或ORM框架如Hibernate进行数据访问,以及如何组织项目结构。 在实际开发中,为了实现酒店管理系统的功能,可能涉及到以下几个关键技术点: 1. ...

    安卓面试题

    - **ORM框架**:如Room、Hibernate等支持分页查询。 #### 56. 自定义View - **继承View**:创建自定义View类。 - **重写draw()方法**:绘制自定义内容。 #### 57. JSON上限 - **大小限制**:通常由解析库决定,...

    MySQL-Tokens:这是该插件的官方源代码MySQL-Tokens

    它可能通过自定义的加密算法或已知的安全标准如SSL/TLS来实现。 2. **令牌化处理**:插件可能支持将敏感数据转换为不可读的令牌,这些令牌可以代替原始数据存储在数据库中,以提高数据保护级别。这种技术在处理信用...

Global site tag (gtag.js) - Google Analytics