- 浏览: 813221 次
- 性别:
- 来自: 西安
文章分类
- 全部博客 (307)
- struts (8)
- hibernate (3)
- spring (32)
- opensourceproject (12)
- javaScript (9)
- primeton EOS (2)
- journey of heart (10)
- Design pattern (6)
- ejb (17)
- point (37)
- Linux&Unix (22)
- ibatis (10)
- AJAX (6)
- DB (26)
- Protocol (6)
- chart (4)
- web server (11)
- webservice (7)
- integration (3)
- tuxedo (5)
- ext (4)
- android (1)
- c/c++ (12)
- JVM (1)
- paginationFrame (2)
- code (2)
- report (1)
- High-performance web (1)
- svn (1)
- JQuery (1)
- workDaily (2)
- cloud (16)
- Python (8)
- English (2)
- shell (5)
- googleCode (1)
- nio (1)
- hyper-v (1)
- debug (3)
- vbs (2)
- openstack (3)
- K8S (1)
- Mesos (0)
- Spark (0)
- Marathon (0)
最新评论
-
钱图大展:
chao2751021 写道lib包哪里去下载,找不到
大型网站用户行为记录的一个实现--基于clickStream(第一部分) -
钱图大展:
无法下载
大型网站用户行为记录的一个实现--基于clickStream(第一部分) -
fm395728572:
shell脚本中用到了环境变量,但是获取不到,例如脚本中有一句 ...
ganymed-ssh2 for Java -
liuhanjiang:
我qq147229234
大型网站用户行为记录的一个实现--基于clickStream(第一部分) -
liuhanjiang:
博主 我利用您提供的方法实现博文中介绍的clickstream ...
大型网站用户行为记录的一个实现--基于clickStream(第一部分)
项目中使用到了ecside,不过没有使用到分页技术,每次都是吧数据库所有的记录给查出来,放到request对象中,然后ecside展示,前台的ecside拿到了request对象中的数据list,根据页面上用户选择的每页显示巨鹿数目,计算出一共多少页,比如记录有10页,当前是第一页,你点第二页,ecside也是在去查一下数据库,把所有的记录找出来,根据每页显示的记录数目,计算出第二页显示的数据记录的起止位置,然后在页面上显示,当数据量巨大的时候,不使用分页就会出现OOM的问题,以下是ecside基于数据库分页的一个简单实现,每次按需取数据,不管记录再多,也不会OOM
准备工作:
1. ecsise 2.0 相关jar包+Mysql 数据库环境+struts
2.在mysql 中建立一个表
CREATE TABLE `user` ( `name` varchar(20) NOT NULL, `age` varchar(20) NOT NULL, `sex` char(30) DEFAULT NULL, `pw` char(30) DEFAULT NULL, `time` datetime DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=gbk
目标:user表中有11条数据,使用数据库层分页技术,每次都按需取数据
分析:ecside展示数据的时候需要吧记录的list放到request中,讲记录的总数也放到request对象中,因此,我们只需要在页面上得到,当前的页码,用户选择的页面上记录显示的数目,在数据库层使用mysql的 limit 就可以构造出分页sql了
解决方案:(关键步骤)
a.使用 RequestUtil.getPageNo(request) 得到当前的页码
b.使用 RequestUtil.getCurrentRowsDisplayed(request) 得到 页面上显示的记录的数目
MYSql 的limit的用法:
在我们使用查询语句的时候,经常要返回前几条或者中间某几行数据,这个时候怎么办呢?不用担心,mysql已经为我们提供了这样一个功能。 SELECT * FROM table LIMIT [offset,] rows | rows OFFSET offset LIMIT 子句可以被用于强制 SELECT 语句返回指定的记录数。LIMIT 接受一个或两个数字参数。参数必须是一个整数常量。如果给定两个参数,第一个参数指定第一个返回记录行的偏移量,第二个参数指定返回记录行的最大数目。初始记录行的偏移量是 0(而不是 1): 为了与 PostgreSQL 兼容,MySQL 也支持句法: LIMIT # OFFSET #。 mysql> SELECT * FROM table LIMIT 5,10; // 检索记录行 6-15 //为了检索从某一个偏移量到记录集的结束所有的记录行,可以指定第二个参数为 -1: mysql> SELECT * FROM table LIMIT 95,-1; // 检索记录行 96-last. //如果只给定一个参数,它表示返回最大的记录行数目: mysql> SELECT * FROM table LIMIT 5; //检索前 5 个记录行 //换句话说,LIMIT n 等价于 LIMIT 0,n。
c. 使用 select * from user order by time desc limit 2,4 使用类似的sql得到分页记录,如果是oracle可以使用一个子查询,并使用rownum
d. 构造结果对象 ResultObject
package cn.com.xinli.bean; import java.io.Serializable; import java.util.ArrayList; public class ResultObject implements Serializable { /** * 分页查询结果集对象 * count 不分页查询所有的结果集的数目(从数据库select count(1) from user) * list 页面上需要显示的分页后的记录list */ int count; ArrayList list=new ArrayList (); public int getCount() { return count; } public void setCount(int count) { this.count = count; } public ArrayList getList() { return list; } public void setList(ArrayList list) { this.list = list; } }
e.告诉ecside 总的记录数目,和需要展示的 数据的list
request.setAttribute("totalRows",ro.getCount());
request.setAttribute("recordList",ro.getList());
f. 在页面上 ectable 中使用 retrieveRowsCallback="limit" 代表分页机制是 数据库层分页
完整的实现见附件,你只需要
1.修改 conf.properties 中的数据库连接参数
2.建立一个user表
3.部署在tomcat中,访问 http://localhost:9090/ecside/test.jsp
效果:
- ecside.rar (5.9 MB)
- 下载次数: 395
评论
发表评论
-
eclipse link 方式管理插件
2012-02-24 15:55 1555以配置tomcat插件为例: (条件:F:\eclip ... -
使用mapinfo 开发GIS 应用
2011-03-18 06:56 12981. mapJ 对象是在tomcat启动的时候 从web ... -
java mail adapter
2011-01-21 12:23 15332011.04.27: 使用jmail 发送中文标题的 ... -
4种调用https服务的方式
2011-01-05 23:45 8791以前在网厅的时候,请求计费的账单开 ... -
正则表达式30分钟入门教程
2010-11-17 12:58 1477正则表达式30分钟入门教程 -
java 异常层次
2010-05-26 16:14 1340Java 中的异常类,包括内置的异常类以及自定义的异常类,都直 ... -
java 解惑你知多少 (转载)
2010-04-26 12:43 1203(1) http://jiangzhengjun.it ... -
jvm调优
2010-04-16 15:35 1287(1) http://pengjiaheng.itey ... -
谈谈重构
2010-04-15 13:34 1318代码重构阅读心得[转] http://www.cnblogs ... -
session会话跟踪的一个小例子
2010-03-14 18:16 1870内容包括: 必备知识: ... -
cookie机制和session机制的区别
2010-03-14 17:06 1202一、cookie机制和sessio ... -
Cookie详解
2010-03-14 16:02 1400Cookie在英文中是小甜品 ... -
什么是Cookie?
2010-03-14 15:06 1453按照Netscape官方文档中 ... -
任务、进程和线程的区别(转)
2010-02-04 17:16 2284任务(task)是最抽象 ... -
加密,解密,认证,数字签名,公钥私钥
2010-01-13 20:42 2334Bob,Alice和数字证书 网络安全中最知名的 ... -
JNI
2009-12-26 14:09 1586JNI是Java Native Inter ... -
JSON在处理hibernate中的cascade对象时的解决方案
2009-12-24 22:12 1526如果数据间存在级联关系,在hibernate中极容易嵌套而 ... -
digester框架 将 XML->JavaBean
2009-11-08 17:38 1755digester组件简化了xml文 ... -
什么是P问题、NP问题和NPC问题
2009-10-25 20:20 2055什么是P问题、NP问题和NPC问题 出自mat ... -
用Fat Jar Eclipse Plug-In打包可执行jar文件
2009-09-30 08:29 3963Fat Jar Eclipse Plug-In [FJEP] ...
相关推荐
【ECSide数据库分页、排序与过滤详解】 ECSide是一个用于Web应用程序的数据展示工具,它提供了便捷的方式来实现数据库中的数据分页、排序和过滤(简称RSF)功能。对于初学者而言,理解ECSide的工作原理和使用方法...
Java SE程序 连接数据库的分页Java SE程序 连接数据库的分页Java SE程序 连接数据库的分页Java SE程序 连接数据库的分页Java SE程序 连接数据库的分页Java SE程序 连接数据库的分页Java SE程序 连接数据库的分页Java...
在MySQL数据库中,分页是处理大量数据查询时不可或缺的一种技术。它允许用户按需加载数据,而不是一次性获取所有记录,从而提高了用户体验并降低了服务器负载。以下是对分页实现的详细说明: 一、基础概念 分页是将...
数据库SQL分页技术 数据库分页是指从大规模的数据集中提取指定的记录数,以减少数据传输量,提高应用程序的性能和用户体验。常见的数据库管理系统包括MySQL、SQL Server、Oracle、DB2等,每种数据库管理系统都有其...
在IT行业中,数据库分页是一种常见的数据检索策略,特别是在处理大量数据时,它能有效地提高应用性能并优化用户体验。Oracle(ORCL)数据库是企业级广泛使用的数据库管理系统,提供了强大的分页功能。本文将深入探讨...
总结一下,Ibatis 2.3.4的数据库无关分页特性提供了一种跨数据库的分页解决方案,通过动态SQL和参数传递,使得分页逻辑独立于具体的数据库方言。这种方式提高了代码的可复用性和可维护性,也降低了系统迁移的成本。...
本教程将深入探讨如何在Qt应用中实现SQLite数据库的数据分页显示。 首先,我们需要在Qt项目中集成SQLite数据库支持。在Qt Creator中,新建一个Qt Widgets Application项目,然后在.pro文件中添加`QT += sql`来启用...
总的来说,"海量数据分页解决方案"的实现涉及数据库优化、存储过程设计以及与应用程序的接口协调。通过"proc_page_demo",我们可以学习到如何在实际项目中运用存储过程来高效地处理大数据分页问题,从而提升系统的...
**Qt编写的数据库分页demo**是一个用于展示如何在Qt应用程序中实现高效、用户友好的数据库数据分页功能的示例项目。这个demo的核心在于它能够处理大量的数据,如千万级记录,同时提供流畅的用户体验,包括上一页、...
在IT领域,数据库操作是至关重要的,特别是在处理大量数据时,分页查询是提高系统性能、优化用户体验的有效手段。易语言作为一款中国本土化的编程语言,提供了与MySQL数据库交互的能力,使得开发者能够轻松实现...
PHP结合数据库,实现分页功能
### 各数据库分页语法支持 #### 概述 在数据库操作中,分页查询是一项非常常见的需求。分页能够帮助我们有效地管理大量的数据记录,提高数据查询的效率和用户体验。不同的数据库系统提供了不同的分页机制,本文将...
只要通过JDBC连接上数据库 获得Connection 对象 套上此模板就可实现数据库数据分页机制……
但是,如果项目中没有使用ORM框架,或者需要更底层的控制,我们可以创建一个数据库访问层(DAL),该层封装了对各个数据库的分页查询。这个DAL可以包含一个接口,定义通用的分页方法,然后为每种数据库实现具体的...
在网页开发中,数据分页是一种常见的用户界面技术,它用于处理大量数据的展示,避免一次性加载所有数据导致页面响应速度变慢或者...实际应用中,开发者需要根据项目需求选择合适的分页方案,确保数据的高效加载和展示。
在ASP(Active Server Pages)开发中,访问Access数据库并实现分页是常见的需求,尤其是在处理大量数据时,分页能够显著提升网页加载速度和用户体验。本文将深入探讨如何使用ASP和Access数据库进行简单的分页。 ...
- 定期对数据库进行性能监控,及时发现并解决瓶颈问题,确保系统的稳定运行。 #### 六、总结 数据库分页技术是提高数据查询效率、优化用户体验的关键技术之一。通过合理选择分页策略、优化查询逻辑以及利用先进的...
在Android应用开发中,数据库是数据存储的重要方式,特别是在处理大量数据时,为了提高用户体验,分页查询就显得尤为重要。本篇文章将详细讲解如何在Android中实现数据库的分页查询功能,以高效、流畅地加载和展示...
Java 连接数据库的分页语句 Java 连接数据库的分页语句是 Java 编程语言中连接数据库并实现分页的语句。分页是指将数据库中的数据分成多页,以便更好地展示和管理数据。Java 连接数据库的分页语句主要包括连接 ...