//分页检索数据
public List getDataSplit(String table,String orderCoulmn,String condition,int page,int pageCount){
long start = System.currentTimeMillis();
List list = new ArrayList();
Connection conn = this.getConn();
Statement stmt = null;
ResultSet rs = null;
String orderby = "order by zj";//默认
if(orderCoulmn!=null && !orderCoulmn.trim().equals(""))orderby = orderby.replace("zj",orderCoulmn);
if(condition!=null && !condition.trim().equals(""))condition = " and "+condition;
try {
stmt = conn.createStatement();
rs = stmt.executeQuery("select count(*) from "+table+" where 1=1 "+condition);
rs.next();
int count = rs.getInt(1);
list.add(new Integer(count));//把总数加入到结果集中
if(page <=0)page=1;
int number = (page-1)*pageCount;
if(number > count)number = (count-pageCount+1)/pageCount ;
// String sql = "select top "+pageCount+" * from "+table+" where ("+orderCoulmn+" not in (select top "+number+" "+orderCoulmn+" FROM "+table+" where 1=1 "+condition+" "+orderby+")) "+condition+" "+orderby;
String sql = "select top "+pageCount+" * from "+table+" where (zj not in (select top "+number+" zj FROM "+table+" where 1=1 "+condition+" "+orderby+")) "+condition+" "+orderby;
// System.out.println(sql+"\n");
rs = stmt.executeQuery(sql);
int length = rs.getMetaData().getColumnCount();
while(rs.next()){
Map map = new HashMap();
for (int i = 1; i <= length; i++) {
Object value = rs.getObject(i);
value=value==null?"":value;
map.put(rs.getMetaData().getColumnName(i).toLowerCase(),new String(value.toString().getBytes("ISO-8859-1"),"GBK"));//可能需要转码
}
list.add(map);
}
rs.close();
stmt.close();
} catch (Exception e) {
e.printStackTrace();
NetSystem.log.log(e.getLocalizedMessage());
try {
if(rs != null)
rs.close();
if(stmt != null)
stmt.close();
} catch (Exception e1) {}
}finally{
this.freeConnection();
}
long end = System.currentTimeMillis();
//50W数据量,主键建立聚集索引,此方法耗时基本在0.219-1.188之间(个人电脑配置)
// System.out.println("耗时: "+(end-start)+" 毫秒"+" 秒:"+(end-start)/1000f);
return list;
}
分享到:
相关推荐
在SQL Server数据库中,分页查询是一个非常重要的功能,它允许我们从大量数据中只获取一部分,例如,每次只返回一页的数据,以提高查询效率和用户体验。本篇将深入探讨SQL Server实现分页查询的语句及其工作原理。 ...
在SQL Server数据库中,分页是一种常见的数据检索技术,它允许我们从大量数据中按需获取一部分结果,而不是一次性加载所有记录。这在处理大型数据集时尤其有用,可以提高性能,减少网络传输,以及提供更好的用户体验...
在SQL Server中,分页技术是一项关键功能,尤其在处理大量数据时,它能有效地提高查询性能并优化用户体验。在Web应用中,分页通常用于显示数据库中的数据列表,避免一次性加载所有数据导致的性能问题。以下是几种...
### SQL Server 数据库分页查询方法详解 #### 一、背景与问题定义 在实际的数据库操作中,分页查询是非常常见的需求之一。对于大型数据集来说,一次加载所有数据到前端显示是不现实的,这不仅会增加服务器负担,还...
在同步分页中,用户请求页面时,服务器会立即执行查询并返回结果,可能导致用户等待时间较长。而异步分页则先返回一个较小的数据集,随后在后台继续加载剩余数据,用户可以立即看到部分结果,并在后续加载过程中继续...
在SQL Server中,分页可以通过多种方法实现,其中一种常见方法是使用`TOP`关键字结合`OFFSET`。然而,在较旧的SQL Server版本中,可能需要更复杂的查询结构,如在给定的代码示例中所示,使用了动态SQL和变量来构建...
在SQL Server数据库中,处理海量数据的查询是一个常见的挑战,特别是在需要进行分页显示的时候。传统的分页方式可能会导致性能瓶颈,特别是在数据量极大的情况下。本文将深入探讨如何使用SQL Server中的`TOP`语句来...
存储过程是一种预先编译好的 SQL 代码块,存储在 SQL Server 数据库中。使用存储过程进行分页查询的好处包括:提高执行效率、增强代码复用性以及提供更好的安全性等。 #### 示例存储过程分析 下面将详细分析给定的...
本篇将详细探讨如何使用C#连接和操作SQL Server数据库,以`SqlServerHelp`类为例,阐述其中的关键知识点。 首先,`SqlServerHelp`类是为简化与SQL Server数据库的交互而设计的。在C#中,我们通常使用ADO.NET库,它...
SQL Server中的分页实现方式相对复杂,主要通过子查询结合`TOP`关键字来完成。 #### 2. 使用`TOP`与子查询 这种方法利用了`TOP`关键字来限制结果集的数量,并通过子查询来排除前几条记录,从而实现分页效果。 - *...
本教程将详细讲解如何在Java中实现不分框架的分页查询,同时涵盖对MySQL和SQL Server数据库的支持。 一、基础知识 1. 分页概念:分页是将大量数据按一定数量分成若干部分,每次只加载一部分到内存中显示,用户可以...
1、本版分页只针对Sql Server数据库,采用top n分页方式,节约资源。 2、支持GridView、DataGrid、DataList等数据控件。 3、本分页已应用于数据量百万级的项目中。 4、使用简单,并包含多种样式布局 一、使用方法:...
在SQL Server数据库面试中,掌握一系列关键操作是至关重要的。以下是一些常见面试题目的详细解答,涵盖了数据检索、表复制、数据转换以及临时表的使用等知识点。 1. **查询特定范围的记录** - 当需要查询第30到第...
综上所述,这个"struts2+sqlserver2000+jstl+分页"示例项目展示了如何整合这四个技术,构建一个能够动态分页显示数据库内容的Web应用。开发过程中,需要理解每个技术的作用,以及它们之间的协作方式。例如,Struts2...
- **分页原理**:通过限制查询结果集的数量来实现,通常结合 LIMIT 和 OFFSET 关键字(SQL Server 中为 TOP 和 ROW_NUMBER 函数)。 - 示例: ```sql SELECT * FROM ( SELECT *, ROW_NUMBER() OVER (ORDER BY id...
SQL Server的分页语句使用TOP关键字,语法为: ```sql SELECT TOP count * FROM table_name WHERE (ID NOT IN (SELECT TOP offset id FROM table_name ORDER BY id)); ``` 其中,offset指定从第几行开始提取,count...
### 50种方法巧妙优化你的SQL Server数据库 在日常的数据库管理与维护工作中,我们经常会遇到查询速度慢的问题,这不仅影响了系统的性能,也降低了用户体验。本文将基于给出的信息,详细介绍可能导致查询速度变慢的...
在SQL Server数据库管理中,分页查询是一种常用的技术,它允许用户按页面浏览大量数据,而不是一次性加载所有结果。这在处理大型数据集时尤为重要,因为它可以提高性能,减少服务器负担,并提供更好的用户体验。本...
针对这一需求,本文将详细介绍如何在SQL Server中实现有效的分页查询。 ### 方法1:使用NOT IN 这种方法通过先选择前300100条记录的序列号(这里假设`fldserialNo`是唯一标识每一行的字段),然后在外层查询中排除...
标题中的"SqlServer操作数据库工具附源码"暗示了这是一个专门用于与SQL Server交互的程序,可能是通过编写代码实现对数据库的各种操作,如查询、插入、更新和删除等。这样的工具通常包括连接数据库的逻辑,执行SQL...