- 浏览: 237035 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
陶永攀:
让我这个菜鸟懂了好多,我最怕的就是区分概念
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 1371匹配中文字符的正则表 ... -
如何在一台服务器上运行多个Tomcat服务
2008-10-21 12:15 3270如何在一台服务器上运 ... -
Md5加密
2007-10-31 17:18 1860... -
[转]JAVA Calendar详解
2007-10-29 20:14 15453究竟什么是一个 Calendar 呢?中文的翻译就是日历,那我 ... -
java日期时间工具类
2007-10-29 11:54 5165java 代码 import java.sql. ... -
java的几种对象(PO,VO,DAO,BO,POJO)解释
2007-10-15 13:22 1549一、PO:persistant object 持久对象,可以 ... -
不使用server.xml配置JNDI on Tomcat 5.5.X
2007-10-15 02:16 19021、JNDI抽取到conf/Catalina/localhos ... -
[转载]volatile关键字有什么用?
2007-08-31 00:11 1914转载:http://bianbian.sunshow.net/ ... -
常用数据库JDBC连接写法
2007-08-15 01:04 1424常用数据库JDBC连接写法 1.MySQL(http://ww ... -
[转]集合类(Collection) List/Set/Map... 的区别和联系
2007-08-01 19:27 8521Collection:List、Set Map:HashMap ... -
ThreadLocal知识总结
2007-07-12 16:09 1509昨天的在看hibernate文档 ... -
[转]http请求中Parameter(参数) 和Attribute(属性)的区别
2007-07-08 19:26 6347HttpServletRequest类既有getAttribu ... -
[转载]java反射机制--写的不错,学习了
2007-07-05 17:13 2109一、反射的概念 : 反射的概念是由Smith在1982年首次提 ...
相关推荐
对结果集list在代码层面进行分页处理。
}函数1:根据总页数,当前页,和页分组及url产生分页导航,分页函数参数列表(有多少页,当前页,每页多少个 ,链接地址)。函数2:根据记录数,页列清数,$page,当前页;$row_num记录总数;$pagesize:每页记录数;$url记录...
php 常用类,有pdo mysql 分页 常用类,很简单实用的 php类,还有图像处理类等
一个处理ajax分页和html静态化页面分页的类,method 处理环境 设置为 html,问号的位置会自动替换为去向页码或method 处理环境 设置为 ajax,ajax分页跳转页面的javascript方法,ajax_func_name后面的附带参数 默认...
简单便捷对商品列表进行分页处理,手把手教你实现,内部有jar和工具类
自己写的分页类,是通用类,可以直接调用。在struts,spring中都没问题
javaScript:将Array数组分页处理,支持分页数据容错; js文件:Page4array分页处理工具类; 兼容版本ES6。 博文:https://blog.csdn.net/HTouying/article/details/88898258
首先用最通俗的思维给你展示一个不需要分页类的文件是如何来处理分页的,之后再告诉你为什么我们需要把分页给独立的抽出来写成一个类,最重要的是思维方式,学会了它你自己也可以写自己的分页类的。
本人原创的ASP分页类,可快速有效的对Recordset对象进行分页处理,大大提升开发效率。 附有网络上常见的分页类例子供测试。数据量100万。 效率,比不上叶子的分页类,但仅次其后... 方便,叶子的分页类:数组。本...
一个处理ajax分页和html静态化页面分页的类,method 处理环境 设置为 html,问号的位置会自动替换为去向页码或method 处理环境 设置为 ajax,ajax分页跳转页面的javascript方法,ajax_func_name后面的附带参数 默认...
显然,你可以允许系统对它进行处理,但是为了获得最佳配置还是使用Vitual Memory Manager (VMM)为好。Windows NT分页文件的基本原则 Windows NT最初通过在物理RAM的数量上加上12MB以设定开始的分页文件大小。这12MB...
本人原创的ASP分页类,可快速有效的对Recordset对象进行分页处理,大大提升开发效率。 附有网络上常见的分页类例子供测试。数据量100万。 效率,比不上叶子的分页类,但仅次其后... 方便,叶子的分页类:数组。本...
本人原创的ASP分页类,可快速有效的对Recordset对象进行分页处理,大大提升开发效率。 附有网络上常见的分页类例子供测试。数据量100万。 效率,比不上叶子的分页类,但仅次其后... 方便,叶子的分页类:数组。本类...
内存分页工具类 * 使用场景:多个查询结果组合后分页的情况 * 1、endNum置为上限,查分页(最大限度可查) * 2、不分页查询,用上限判断(超过上限给提示不能查) * 注意:需要分页的全量数据要设置上限
PageUtils是一个Java工具类,用于简化分页逻辑的处理。它包含以下两个主要部分: 1. PageInfo 内部类:这是一个泛型类,封装了分页所需的信息,包括当前页码、页面大小、总页数、总记录数和当前页的记录列表。 2. ...
//将处理后的URL的查询字串替换原来的URL的查询字串: $url=str_replace($parse_url["query"],$url_query,$url); //在URL后加page查询信息,但待赋值: if($url_query) $url.="&page;"; else $url.="page"; }else {...
自己写的4个php类,分享一下,代码比较傻瓜,高手就不要下了,嘿嘿 file.php 文件上传类 ...page_class.php 分页处理类 文件里面有使用实例,做小站的可以直接使用,有兴趣共同讨论进步的,加QQ:284358278
* 内存分页工具类 * 使用场景:多个查询结果组合后分页的情况 * 1、endNum置为上限,查分页(最大限度可查) * 2、不分页查询,用上限判断(超过上限给提示不能查) * 注意:需要分页的全量数据要设置上限
php分页类,加密类,数据库操作类,文件操作类,无限分级类,验证类,字符串处理类