- 浏览: 239139 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
陶永攀:
让我这个菜鸟懂了好多,我最怕的就是区分概念
execute、executeQuery和executeUpdate之间的区别 -
Tikitoo:
executeUpdate,executeQuery懂了,后面 ...
execute、executeQuery和executeUpdate之间的区别 -
alanland:
dojo 的资料好难找,大侠 现在还在 iteye吗?
dojo控件FilteringSelect的使用经历 -
scwuwei:
看的想睡觉,文字太多了,不过写的很详细,不错,学习了
[转]JAVA Calendar详解 -
whl401765060:
谢谢,阐述的非常详细。
[转]JAVA Calendar详解
java 代码
- package com.dz.tools;
- import java.sql.Connection;
- import java.sql.ResultSet;
- import java.sql.SQLException;
- import java.sql.Statement;
- import java.util.ArrayList;
- /**
- * 用于WEB的分页类(基于ORACLE). 注意:当字段中有","号时,请用"#"号代替 例如:_columnList =
- * "id,to_char('2007-08-05','yyyy-mm-dd')"中
- * to_char('2007-08-05','yyyy-mm-dd')中的","号改为"#",应写为: _columnList =
- * "id,to_char('2007-08-05'#'yyyy-mm-dd')" <br>
- * <br>
- *
- * @author dz
- * @version 版本号 1.00
- */
- public class Page {
- private ArrayList list = new ArrayList();// 返回数据集.
- private int tCount = 0;// 总记录数.
- private int tPages = 0;// 总页数.
- private int cPage = 0;// 当前页.
- private int cMinPage = 0;// 当前最小页,用于<<.
- private int cMaxPage = 0;// 当前最大页,用于>>.
- private int offset = 0;// 本页最小记录号.
- private int below = 0;// 本页最大记录号.
- private String first = "";// 第一页.
- private String prev = "";// 上一页.
- private String next = "";// 下一页.
- private String last = "";// 最后一页.
- private int specify = 0;// 指定显示页.
- private ArrayList pageList = new ArrayList();// 页列表
- private int pageListCount = 0;// 所列页总页
- private int maxLine = 0;// 每页最大显示数.
- private String dataSourceName = "";// 数据源名.
- private String tableName = "";// 表名.
- private String columnList = "";// 字段列表.
- private String findCondition = "";// 查询条件.
- private String pageQuery = "";// 页面参数.
- /**
- * 该类的构造函数,无参数.
- *
- */
- public Page() {
- }
- /**
- * 设置数据源名.
- *
- * @param dataSourceName
- * 数据库名
- */
- public void setDataSourceName(String dataSourceName) {
- this.dataSourceName = dataSourceName;
- }
- /**
- * 设置表名.
- *
- * @param tableName
- * 表名
- */
- public void setTableName(String tableName) {
- this.tableName = tableName;
- }
- /**
- * 设置字段列表.
- *
- * @param columnList
- * 字段列表
- */
- public void setColumnList(String columnList) {
- this.columnList = columnList;
- }
- /**
- * 设置字段列表.
- *
- * @param columnList[]
- * 字段列表
- */
- public void setColumnList(String[] columnList) {
- for (int i = 0; i < columnList.length; i++)
- if (i == columnList.length - 1)
- this.columnList += columnList[i];
- else
- this.columnList += columnList[i] + ",";
- }
- /**
- * 设置查询条件
- *
- * @param findCondition
- * 查询条件
- */
- public void setFindCondition(String findCondition) {
- this.findCondition = findCondition;
- }
- /**
- * 设置页面传递参数,如有多个参数要传递,可多次调用.
- *
- * @param key
- * 参数名
- * @param value
- * 参数值
- */
- public void setPageQuery(String key, String value) {
- this.pageQuery += key + "=" + value + "&";
- }
- /**
- * 取页面参数.
- *
- * @return 页面参数
- */
- public String getPageQuery() {
- return pageQuery;
- }
- /**
- * 设置每页最大显示数
- *
- * @param maxLine
- * 每页最大显示数
- */
- public void setMaxLine(int maxLine) {
- this.maxLine = maxLine;
- }
- /**
- * 取总页数.
- *
- * @return 总页数
- */
- public int getTPages() {
- return tPages;
- }
- /**
- * 取当前页.
- *
- * @return 当前页
- */
- public int getCPage() {
- return cPage;
- }
- public String getcPage() {
- return cPage + "";
- }
- /**
- * 取第一页.
- *
- * @return 第一页
- */
- public String getFirst() {
- return first;
- }
- /**
- * 取上一页.
- *
- * @return 上一页
- */
- public String getPrev() {
- return prev;
- }
- /**
- * 取下一页.
- *
- * @return 下一页
- */
- public String getNext() {
- return next;
- }
- /**
- * 取最后一页.
- *
- * @return 最后一页
- */
- public String getLast() {
- return last;
- }
- /**
- * 取总记录数.
- *
- * @return 总记录数
- */
- public int getTCount() {
- return tCount;
- }
- public void setSpecify(int specify) {
- this.specify = specify;
- }
- public int getSpecify() {
- return specify;
- }
- /**
- * 生成页列表. changeCatalog()之后调用
- *
- * @param current
- * @param csum
- * @return
- */
- private void setPageList() {
- int start = 1;
- if (cPage > pageListCount)
- if (cPage % pageListCount == 0)
- start = pageListCount
- * ((int) Math.ceil(cPage / pageListCount) - 1) + 1;
- else
- start = pageListCount * (int) Math.ceil(cPage / pageListCount)
- + 1;
- cMinPage = start - 1;
- int end = start + pageListCount;
- cMaxPage = end;
- if (end > tPages) {
- end = tPages;
- cMaxPage = 0;
- }
- for (int i = 0; i < pageListCount; i++) {
- if (start <= tPages) {
- pageList.add(new Integer(start));
- start++;
- }
- }
- }
- public ArrayList getPageList() {
- return pageList;
- }
- public void setPageListCount(int pageListCount) {
- this.pageListCount = pageListCount;
- }
- public int getCMaxPage() {
- return cMaxPage;
- }
- public int getCMinPage() {
- return cMinPage;
- }
- /**
- * 取记录集.
- *
- * @return 记录集
- */
- public ArrayList getList() {
- return list;
- }
- /**
- * 生成本页参数. 在query()中获取总记录数后,执行SQL之前调用.
- */
- private void changeCatalog() {
- // 总页数
- tPages = (int) Math.ceil((double) tCount / maxLine);
- // 当前页
- if (specify == 0) {
- specify = 1;
- }
- if (specify > tPages) {
- specify = tPages;
- }
- // 本页最小记录号
- offset = (specify - 1) * maxLine + 1;
- // 本页最大记录号
- below = specify * maxLine;
- // 当前页
- cPage = specify;
- // 首页参数
- if (specify > 1)
- first = "?page=1&" + pageQuery;
- else
- first = "";
- // 上页参数
- if (specify > 1)
- prev = "?page=" + (specify - 1) + "&" + pageQuery;
- else
- prev = "";
- // 下页参数
- if (specify < tPages)
- next = "?page=" + (specify + 1) + "&" + pageQuery;
- else
- next = "";
- // 未页参数
- if (specify < tPages)
- last = "?page=" + tPages + "&" + pageQuery;
- else
- last = "";
- }
- /**
- * 主操作类(使用page). 请在setXXX()之后,getXXX()方法之前调用
- *
- * @throws SQLException
- */
- public void query() throws SQLException {
- // 取数据库连接
- Connection conn = Database.getConnection(dataSourceName);
- if (conn == null)
- throw new SQLException("获取数据库连接错误");
- Statement stmt = null;
- ResultSet rs = null;
- try {
- String sql = "SELECT count(*) FROM " + tableName + " "
- + findCondition;
- stmt = conn.createStatement();
- rs = stmt.executeQuery(sql);
- while (rs.next())
- tCount = rs.getInt(1);// 总记录数
- changeCatalog();
- //System.out.println(tCount);
- setPageList();
- // 设置查询语句
- sql = "SELECT " + columnList.replaceAll("#", ",") + " FROM "
- + tableName + " " + findCondition;
- sql = "SELECT rownum r1,t.* FROM (" + sql + ") t";
- sql = "SELECT r.* FROM (" + sql + ") r WHERE r1 BETWEEN " + offset
- + " AND " + below;
- // System.out.println(specify);
- //System.out.println(sql);
- // 取记录
- String[] _row = columnList.split(",");
- int _rownum = _row.length;
- rs = stmt.executeQuery(sql);
- while (rs.next()) {
- String[] _temp = new String[_rownum];
- for (int i = 0; i < _rownum; i++) {
- _temp[i] = rs.getString(i + 2);
- // System.out.println(_temp[i]);
- }
- list.add(_temp);
- }
- } finally {
- if (rs != null)
- rs.close();
- if (stmt != null)
- stmt.close();
- if (conn != null)
- conn.close();
- }
- }
- }
发表评论
-
JavaScript验证正则表达式大全
2008-12-09 17:23 1406匹配中文字符的正则表 ... -
如何在一台服务器上运行多个Tomcat服务
2008-10-21 12:15 3315如何在一台服务器上运 ... -
Md5加密
2007-10-31 17:18 1920... -
[转]JAVA Calendar详解
2007-10-29 20:14 15521究竟什么是一个 Calendar 呢?中文的翻译就是日历,那我 ... -
java日期时间工具类
2007-10-29 11:54 5252java 代码 import java.sql. ... -
java的几种对象(PO,VO,DAO,BO,POJO)解释
2007-10-15 13:22 1594一、PO:persistant object 持久对象,可以 ... -
不使用server.xml配置JNDI on Tomcat 5.5.X
2007-10-15 02:16 19441、JNDI抽取到conf/Catalina/localhos ... -
[转载]volatile关键字有什么用?
2007-08-31 00:11 1958转载:http://bianbian.sunshow.net/ ... -
常用数据库JDBC连接写法
2007-08-15 01:04 1464常用数据库JDBC连接写法 1.MySQL(http://ww ... -
[转]集合类(Collection) List/Set/Map... 的区别和联系
2007-08-01 19:27 8562Collection:List、Set Map:HashMap ... -
ThreadLocal知识总结
2007-07-12 16:09 1551昨天的在看hibernate文档 ... -
[转]http请求中Parameter(参数) 和Attribute(属性)的区别
2007-07-08 19:26 6419HttpServletRequest类既有getAttribu ... -
[转载]java反射机制--写的不错,学习了
2007-07-05 17:13 2192一、反射的概念 : 反射的概念是由Smith在1982年首次提 ...
相关推荐
对结果集list在代码层面进行分页处理。
"java分页工具类" Java分页工具类是Java语言中的一种常用工具类,用于实现分页功能。下面是该工具类的详细知识点: 1. 分页工具类的作用 分页工具类的主要作用是将大量数据分页显示,以便用户更方便地浏览和操作...
5. **获取当前页数据**:可能有一个方法用于获取当前页的数据,这通常涉及到数据库查询的分页处理。 6. **自定义配置**:可能允许开发者通过设置属性来自定义分页的样式、页码间隔、是否显示第一页和最后一页等。 ...
ASP分页技术是Web开发中一个非常重要的概念,特别是在处理大量数据时,为了提高用户体验,通常需要将数据分块显示,而不是一次性加载所有内容。在ASP(Active Server Pages)环境中,实现分页功能通常需要编写自定义...
在`test.php`中,可能是对分页类的测试代码,它会实例化分页类,传入必要的参数,然后展示或处理分页后的数据。测试代码通常包括以下步骤: 1. **连接数据库**:建立到数据库的连接,并执行查询操作以获取所有记录...
在IT领域,分页工具类是数据库操作和Web开发中常用的一种组件,它主要用于处理大量数据的展示,避免一次性加载所有数据导致的性能问题。在实际应用中,分页可以帮助用户更加高效地浏览和管理信息,提高用户体验。...
"php封装的page分页类" 是一个专门用于处理这种需求的类库,它简化了PHP分页的实现过程,通过封装核心逻辑,使开发者能够快速、高效地实现分页功能。 首先,我们要理解分页的基本原理。在数据库查询中,如果一次性...
ASP.NET 分页类是用于处理大量数据并分批次显示的关键技术,它允许用户在Web应用程序中轻松地浏览大型数据集,提高用户体验,并减轻服务器负担。相比于Visual Studio (VS) 自带的分页控件,自定义分页类提供了更高的...
5. **错误处理**:良好的分页类应该包含错误处理机制,以应对可能出现的问题,如无效的页码输入或数据库连接问题。 6. **重用性与灵活性**:一个优秀的分页类应设计成可复用的,允许开发者自定义样式、链接格式等,...
在Web开发中,分页是一种常见的用户界面设计技术,它用于处理大量的数据并提供良好的用户体验。当数据库中的数据量过大,一次性加载所有记录会导致页面加载速度慢,甚至可能导致内存溢出。因此,分页成为了一个必不...
本资源包包含了一些基本但非常实用的PHP类,主要包括数据库连接类、分页类以及图像处理类。接下来,我们将详细介绍这些类及其相关知识点。 1. **数据库连接类**: - PDO (PHP Data Objects):PDO 是 PHP 提供的一...
Oracle数据库在处理大数据量时,分页查询是必不可少的功能,它可以有效地提高数据检索效率,减少内存占用,并提供更好的用户体验。本文件包包含了一系列用于实现Oracle数据库分页查询的类,帮助开发者解决分页问题。...
"page.rar"可能包含了一个分页工具类,这类工具通常提供静态方法,接收SQL查询语句、每页大小和当前页码作为参数,然后返回处理后的SQL和分页参数。这样的设计使得在代码中调用分页功能变得简单易行,同时也易于维护...
### Java分页处理 #### 一、引言与背景 在Web开发中,尤其是在使用Java进行Web开发时,分页处理是一项极其重要的技术。当数据量较大时,如果不使用分页,不仅会导致页面加载时间过长,降低用户体验,还会增加...
`PageTag`类通常包含处理分页逻辑的方法,如计算总页数、获取当前页数据等。同时,需要创建对应的标签描述文件`t32.tld`,定义标签的属性、行为以及与`PageTag`类的关联。在JSP页面中,我们可以通过`<t32:page>`这样...
总之,Java分页工具类是Java开发中的重要组件,它通过合理地组织数据查询和处理,提供了便捷的分页解决方案,使得大规模数据的处理变得轻而易举。在实际应用中,我们可以根据项目需求对工具类进行适当的定制和优化,...
在网页开发中,分页是常见的功能之一,用于处理大量数据的展示,使得用户能够方便地浏览和导航。"e路JS分页样式类"是一个专门针对JavaScript实现的分页样式库,它提供了美观的界面和友好的用户体验。在这个主题中,...
总结来说,"高效asp分页类"是一个能够有效处理大数据分页的工具,它通过优化数据查询、使用缓存、参数化查询以及良好的用户界面设计,实现了在处理1000000条数据时几乎无停顿的快速分页效果。`ListPage.Asp`可能是一...
例如,在`execute()`方法中进行分页处理,并将处理后的`PageUtils`对象传递给视图层。 ##### 2. Spring 在Spring框架下,可以利用`@ModelAttribute`注解将`PageUtils`对象注入到控制器方法中。通过`@RequestParam`...