`

Debug地研究Hibernate分页功能过程中的另外收获

阅读更多

1, 如用MySQL,其分页sql是啥样的: select * from table limit 5,10, 它取从6开始的5条记录。

2, CriteriaImpl 文件里,Subcriteria 内部类中“CriteriaImpl.this.setFirstResult(firstResult);”写法。想起来了, 这是为了在内部类Subcriteria调用外部类CriteriaImplsetFirstResult方法。

3, new StringBuffer( sql.length()+100 )的写法。 为什么这样来指定长度呢? 原因:在append时,有这样的判断if (newCount > value.length) expandCapacity(newCount);而在expandCapacity时, 生成一个新数组,再把原来数组的内容用System.arraycopy拷到新数组中去。由于arraycopy是费时间的,这样指定一个绰绰有余的用空间来换时间。

4, Debug追看实现时的一个技巧, 以当前这个分布实现作例子来看,分页信息是通过Criteria接口的setFirstResultsetMaxResults两处方法传入的, 于是追着看其实现类中getMaxResults()方法什么时候调用,也就是在这get方法中加断点。这样没几步就可以很便捷地追到“案发现场”。

1
0
分享到:
评论

相关推荐

    webwork2.2.7+spring+hibernate分页查询

    本项目采用WebWork 2.2.7框架结合Spring和Hibernate技术实现了一个基本的用户数据分页查询功能。主要目标是根据用户输入的用户名获取相应的数据,并以分页的形式展示给用户。 #### 二、系统结构分析 项目采用了...

    struts+spring+hibernate通用分页方法

    在Web应用开发中,分页是一项常用且重要的功能。特别是在处理大量数据时,合理的分页策略能够显著提升用户体验并减轻服务器压力。Struts+Spring+Hibernate作为经典的Java Web开发组合,其分页实现方式具有很高的参考...

    【孔浩老师】SpringMVC整合Hibernate(全注解)实现用户管理管理

    【SpringMVC与Hibernate整合全注解实现用户管理】\n\n在现代Web开发中,SpringMVC和Hibernate是两个非常关键的技术栈,它们分别负责处理应用的控制层和持久层。SpringMVC作为Spring框架的一部分,提供了强大的MVC...

    Hibernate 3.1.2 参考手册

    - 使用Hibernate的debug级别日志查看实际执行的SQL语句,检查语法错误或逻辑错误。 - 如果使用的是HQL或Criteria API,则确保查询条件正确。 **3. 性能瓶颈** - 使用JProfiler等工具进行性能分析,找出瓶颈所在...

    java自己写了一个带有缓存的序列,简单的分页封装(都没有人给过评论)

    6. **API设计**:作者可能会介绍如何设计友好的API接口,让其他开发者可以方便地调用这个带有缓存和分页功能的序列。 7. **异常处理**:在处理数据库操作时,异常处理是非常重要的,作者可能会讲解如何捕获和处理...

    ssh框架的搭建完整版

    再者,**一个简单的Hibernate分页程序**是数据库查询的常用功能。在Hibernate中,可以使用Criteria或HQL(Hibernate Query Language)配合CriteriaAPI或Query接口实现分页查询。例如,以下是一个使用CriteriaAPI的...

    写的ssh+log4j的Simple

    最后,"分页"是Web应用程序中常见的功能,尤其是在处理大量数据时。分页能提高用户体验,避免一次性加载过多数据导致页面响应慢。在SSH项目中,可以通过Struts的拦截器或者自定义标签库实现分页,同时结合Hibernate...

    java程序员简历模板

    - 用 Ajax 实现异步刷新功能,解决了全屏刷新资源消耗大及出空白页面等待的问题,也极大地减轻了网络传输的压力,并结合 JavaScript 技术丰富页面动态效果 - 完善了该项目的相关文档资料 * 人事管理系统 + 软件...

    BeetlSQL 2.10中文文档

    #### 十四、DEBUG功能 BeetSql提供了调试功能,帮助开发者更好地定位问题。 #### 十五、缓存功能 为了提高性能,BeetSql支持缓存机制,可以有效地减少对数据库的访问次数。 #### 十六、INTERCEPTOR功能 BeetSql...

    java面试题(合集)

    2. **Oracle分页语句**:Oracle中常用ROWNUM配合子查询进行分页,例如`SELECT * FROM (SELECT t.*, ROWNUM rnum FROM your_table t WHERE ROWNUM ) WHERE rnum >= :startRow`,其中`:startRow`和`:endRow`分别代表...

    struts2整理文档

    #### 三、Struts2中的分页处理 **1. 分页原理简介** - **核心概念**: - 分页处理的关键在于如何确定每页显示的数据数量以及如何根据用户请求加载相应的数据。 - 常见的分页属性包括:`pagesize`(每页显示的...

    mybatis plus.txt

    MP提供了一套简单易用的CRUD操作接口,并且内置了分页查询、条件构造器等功能,极大地简化了日常的增删改查等基础数据操作。 #### 二、POM配置详解 在项目构建过程中,POM文件的配置至关重要。以下是对给定文件中...

    框架面试笔试问答题.docx

    - **提供AOP支持**:支持面向切面编程,方便地实现日志记录、性能监控等功能。 - **简化配置**:提供多种配置方式,如XML配置、注解配置等。 #### 11. DAO层的作用 - **Data Access Object**(DAO)层:负责数据...

    spring-boot List转Page的方法步骤

    然而,在 debug 过程中,我们发现这种方法并不能正确地分割列表。因此,我们需要手动分割列表。 第五步:手动分割列表 我们可以使用 pageable 的 getOffset 和 getPageSize 方法来计算当前页的起始和结束索引: ```...

    java开发的简历模板[参考].pdf

    在商品类别管理中,她实现了类别的树状结构显示,运用了EasyUI插件和分页。购物车模块基于Session的Map模型设计,实现了购物车的持久化操作。她通过项目流程分析提升了开发效率,并体验到Spring的高度可扩展性。 ...

    JAVA程序员简历模板

    - 用 Ajax 实现异步刷新功能,解决了全屏刷新资源消耗大及出空白页面等待的问题,也极大地减轻了网络传输的压力,并结合 JavaScript 技术丰富页面动态效果 - 完善了该项目的相关文档资料 + 项目描述:该项目...

    程序设计性能优化经验总结

    性能优化是程序设计中的关键环节,它涉及到系统的响应速度、内存使用、CPU负载以及数据连接资源等多个方面。本文将从常见的性能问题出发,探讨如何识别和解决这些问题。 首先,系统响应速度慢通常与查询和业务操作...

    Java后端服务接口开发建议

    在Java后端服务接口开发中,有很多最佳实践和策略可以提升效率、可维护性和可扩展性。以下是一些关键知识点,旨在帮助开发者构建高质量的Java后端服务接口: 1. **设计原则**: - **RESTful API设计**:遵循...

    Java学习笔记-个人整理的

    {2.8}框架中移动的小球}{59}{section.2.8} {2.9}抽象与接口}{59}{section.2.9} {2.10}访问控制}{60}{section.2.10} {2.10.1}类的属性}{60}{subsection.2.10.1} {2.10.2}类的方法}{61}{subsection.2.10.2} {...

Global site tag (gtag.js) - Google Analytics