今天要在sqlserver环境下做一个简单的增删改功能,要用到分页,开始直接用oracle数据库环境一直用的一个jdbc重构过的类处理,发现不行,才想起oracle和sqlserver的分页sql语句写法是很不一样的,于是打算google一下,紧接又想,何不先看看hibernate在sqlserver环境是怎么处理分页的(我这里用的是hibernate 3.0)。
先把hibernate配置文件的show_sql改成true,启动tomcat,在项目原来的一个功能里找到一个翻页的地方,比如每页显示两条,第一页的时候,hibernate的query语句是:SELECT TOP 2 * FROM ... 恩,对的,看来hibernate还比较聪明,第一页直接用top语句,可是点下一页,当查询的记录应是3-4条时,hibernate的query语句是: SELECT TOP 4 * FROM... 不理解了,难道hibernate这么笨吗,如果我要查的是第100万条到100万零10条的记录,难道他也是先把这100万零10条全部查出来吗?但是我测试的结果就是如果我要去第5000页的数据,他就是select top 10000 * from ....这样取出来的。但是如果把sql dialect 改成oracle,处理是用 rownum 直接去取需要的中间那么多条记录的。明天升级到最新的hibernate 3.3试试看会不会这样。难道java的开源框架对sql server这么感冒? 呵呵
监控了下数据库,发现公司的php程序在翻页时也是这样处理的,我就奇怪了,sql server2005中也有rownum概念的啊。看来代码从sql server2000到2005以后还是要做一些优化的
分享到:
相关推荐
综上所述,`Hibernate+sqlserver2000分页`是一个结合了ORM框架和数据库分页策略的技术主题。在实际应用中,开发者需要根据业务需求选择合适的分页方法,并注意性能优化,如避免全表扫描,使用索引来加速查询等。理解...
在分页项目中,Hibernate主要用来从SQL Server 2005数据库中检索和操作数据。使用Hibernate的Session接口,我们可以方便地执行查询,获取指定页码的数据。 **3. SQL Server 2005数据库** SQL Server 2005是微软...
一个基于Hibernate 和 SQLServer 数据库的分页示例,所有文件和数据库备份都在,只是速度不怎么快,如果加上自动生成下拉框,速度就更慢了,单表、10008条测试数据,如果哪位大侠改进了查询速度望告之:vni2007@163....
通过研究这个项目,开发者可以学习到SSH框架的整合、Spring的bean管理和事务处理、Hibernate的数据库操作,以及SQLServer的分页查询技巧。同时,对于提高Web应用的用户体验,理解分页原理和实现方式也是必不可少的。
SQLServer2008Dialect 优化了原来的分页查询数据方法以及在生成SQL时表后增加了with(nolock)
标题与描述均提到了“Hibernate分页的...正确实施分页不仅可以提升用户体验,还能显著提高应用程序的性能和响应速度,特别是在处理大数据量的情况下。理解并掌握这些知识点,对于开发高效、稳定的Web应用程序至关重要。
在SSH2框架中,SQL Server 2000作为后端数据存储,通过Hibernate进行数据交互。 在这个项目中,SSH2框架与SQL Server 2000的结合,实现了用户登录和客户列表查询功能。这通常涉及到以下步骤: 1. 用户在前端(通常...
本文将深入探讨标题和描述中提到的“com.microsoft.sqlserver.jdbc.SQLServerException: 只进结果集不支持请求的操作”这一异常,以及如何在使用Hibernate、Struts进行分页时避免这一问题。我们将从异常的根本原因...
String a = "jdbc:sqlserver://" + a1 + ";DatabaseName=KQ"; int rowTotal = 0; String sql = "SELECT COUNT(*) FROM basic WHERE deptid='" + data.getId() + "'"; try { Connection con = DriverManager....
在Java的持久化框架Hibernate中,分页查询是常见的需求,尤其在处理大量数据时,为了提高用户体验,分页展示数据至关重要。本文将探讨Hibernate中两种主要的分页方式:`query.scroll()`和使用`query.setFirstResult...
8. **分页插件和框架**:在开发环境中,许多ORM框架如Hibernate、MyBatis提供了分页插件,可以简化分页操作,避免手动编写复杂的SQL。 9. **分页与排序**:分页通常与排序结合使用,确保每次加载的都是有序的数据。...
尽管在Hibernate中直接使用SQL Server 2000的存储过程会损失一定的数据库可移植性,但在某些情况下,使用存储过程可以带来性能优化、复杂业务逻辑处理以及安全性的提升。存储过程可以在服务器端执行,减少网络传输的...
通过这个项目,开发者可以学习到如何在Struts和Hibernate的集成环境下实现分页功能,理解MVC架构下各层的职责,以及如何使用Hibernate进行数据库操作。此外,还能了解到如何在前端展示分页信息,提高用户体验。这是...
在Java的持久化框架Hibernate中,分页查询是常见的需求,它可以帮助我们有效地管理大量数据,提高系统的性能。本文将详细讲解如何在Hibernate中实现真分页(物理分页)和假分页(逻辑分页)。 首先,我们来了解什么...
10. **数据安全**: 在处理用户输入以构造查询时,必须防止SQL注入攻击,可以通过预编译语句(PreparedStatement)或者使用Hibernate的参数绑定机制来实现。 综上所述,"hibernate jsp 分页Demo"项目是一个教学实例...
<property name="hibernate.connection.url">jdbc:sqlserver://127.0.0.1:1433;DatabaseName=Tb_soft <property name="hibernate.connection.username">sa <property name="hibernate.connection.password">...
4. **SQL查询**:在SQL中,我们可以使用`LIMIT`和`OFFSET`(MySQL)或`FETCH NEXT`和`OFFSET`(SQL Server)来实现分页查询。 5. **数据处理**:查询结果返回后,应用需要对数据进行处理,如转换为对应的Java对象,...
本项目是基于`jsp`(Java Server Pages)和`Hibernate`框架实现的分页功能,通过Java代码来详细展示了如何在Web应用中高效地实现这一功能。 `jsp`是Java的一种动态网页技术,允许开发者在HTML中嵌入Java代码,以...
通过结合Hibernate和Struts的优点,本项目提供了在Sqlserver2000环境下高效、灵活的分页解决方案,使得开发者可以更加专注于业务逻辑,而不是底层数据处理细节。对于学习和实践Java Web开发的人员来说,这是一个很好...
在Java Web开发中,分页功能是不可或缺的一部分,特别是在处理大量数据时,为了提高用户体验,分页能够有效地组织和展示信息。本项目利用了Hibernate、Servlet和JSP这三种技术来实现这一功能。以下是关于这些技术...