- 浏览: 281961 次
- 性别:
- 来自: 深圳
文章分类
最新评论
-
iceblue123:
厉害,太感谢楼主了,第二种方法威武!
spring MVC 3.2中@ResponseBody返回乱码的完美解决方案 -
gaozi131:
感谢啊 折腾了一下午搞定
spring MVC 3.2中@ResponseBody返回乱码的完美解决方案 -
yenshen:
找了半天,问题终于解决了,感谢!
spring MVC 3.2中@ResponseBody返回乱码的完美解决方案 -
笑闯天下:
感觉效率不是很高啊 ,如果从数据库中取到的数据 还要去自己拼接 ...
java导出CSV文件 -
ajonjun:
http://viralpatel.net/
解决ckeditor html不显示,ckeditor 自动过滤html
定义:pageStart 起始页,pageEnd 终止页,pageSize页面容量
oracle分页:
select * from ( select mytable.*,rownum num from (实际传的SQL) where rownum<=pageEnd) where num>=pageStart
sqlServer分页:
select * from ( select top 页面容量 from( select top 页面容量*当前页码 * from 表 where 条件 order by 字段A) as temptable1 order by
字段A desc) as temptable2 order by 字段A
Mysql分页:
select * from mytable where 条件 limit 当前页码*页面容量-1 to 页面容量
Java分页接口和实现类:
oracle分页:
select * from ( select mytable.*,rownum num from (实际传的SQL) where rownum<=pageEnd) where num>=pageStart
sqlServer分页:
select * from ( select top 页面容量 from( select top 页面容量*当前页码 * from 表 where 条件 order by 字段A) as temptable1 order by
字段A desc) as temptable2 order by 字段A
Mysql分页:
select * from mytable where 条件 limit 当前页码*页面容量-1 to 页面容量
Java分页接口和实现类:
package com.zhutou.util; import java.sql.Connection; import java.sql.SQLException; import javax.naming.Context; import javax.naming.InitialContext; import javax.naming.NamingException; import javax.sql.DataSource; import org.apache.commons.dbutils.QueryRunner; import org.apache.commons.dbutils.ResultSetHandler; public class OracleUtil { private String dataSourceName; private DataSource ds; public OracleUtil(String dataSourceName){ this.dataSourceName = dataSourceName; } public OracleUtil(){ } public void setDataSourceName(String dataSourceName){ this.dataSourceName = dataSourceName; } public void init(){ Context initContext; try { initContext = new InitialContext(); ds = (DataSource)initContext.lookup(dataSourceName); } catch (NamingException e) { e.printStackTrace(); } } public int update(String sql,String[] param){ int result = 0; QueryRunner qr = new QueryRunner(ds); try { result = qr.update(sql,param); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } return result; } public Object query(String sql,String[] param,ResultSetHandler rsh){ QueryRunner qr = new QueryRunner(ds); Object result = null; try { result = qr.query(sql, param,rsh); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } return result; } public static Connection getConnection(){ Connection conn = null; try { Context context = new InitialContext(); DataSource ds = (DataSource)context.lookup("java:/comp/env/jdbc/oracleds"); conn = ds.getConnection(); QueryRunner qr = new QueryRunner(ds); // PreparedStatement pstmt = conn.prepareStatement("select * from guestbook"); // ResultSet rs = pstmt.executeQuery(); // while(rs.next()){ // System.out.println(rs.getInt("g_id")); // System.out.println(rs.getString("title")); // System.out.println(rs.getString("remark")); // } } catch (NamingException e) { // TODO Auto-generated catch block e.printStackTrace(); }catch(SQLException e){ e.printStackTrace(); } return conn; } } package com.qg.demo.util; import java.util.List; public interface Pagination { public boolean isLast(); public boolean isFirst(); public boolean hasNext(); public boolean hasPrevious(); public int getMaxElements();//最大记录数 public int getMaxPage();//最大页码 public int getNext(); public int getPrevious(); public int getPageSize(); public int getPageNumber(); public List<Object> getList(); public void setPageSize(int pageSize); public void setPageNumber(int pageNumber); } package com.qg.demo.util; import java.sql.ResultSet; import java.sql.SQLException; import java.util.List; import java.util.regex.Pattern; import org.apache.commons.dbutils.ResultSetHandler; import org.apache.commons.dbutils.handlers.MapListHandler; public class OraclePaginationImpl implements Pagination { private int pageSize = 20; private int pageNumber = 1; private int maxElements; private int maxPage; private String sql; private OracleUtil db; public OraclePaginationImpl(String sql){ this.sql = sql; init(); } public OraclePaginationImpl(String sql,int pageSize, int pageNumber){ this.sql = sql; this.pageSize = pageSize; this.pageNumber = pageNumber; init(); setPageNumber(pageNumber); } private void init(){ db = new OracleUtil("java:/comp/env/jdbc/oracleds"); db.init(); setMaxElements(); setmaxPage(); } private void setMaxElements() { //select * from xxx order by xx desc //select count(1) from xxx order by xx desc String regex = "select((.)+)from"; Pattern p = Pattern.compile(regex,Pattern.CASE_INSENSITIVE); String[] s = p.split(this.sql); String newSql = "select count(1) as total from "+s[1]; ResultSetHandler handler = new ResultSetHandler(){ public Object handle(ResultSet rs) throws SQLException{ if(rs.next()){ return new Integer(rs.getInt("total")); }else{ return null; } } }; this.maxElements = (Integer)db.query(newSql, null, handler); } private void setmaxPage(){ this.maxPage = (maxElements%pageSize == 0 ? maxElements/pageSize : (maxElements/pageSize +1)); } private String sqlModify(String sql,int begin ,int end){ StringBuffer buffer = new StringBuffer(); buffer.append("select * from ( select rownum num,a.* from (") .append(sql) .append(") a where rownum <= ") .append(end) .append(") where num >= ") .append(begin); return buffer.toString(); } private int getBeginElement() { return (pageNumber-1) * pageSize +1; } private int getEndElement() { return (pageNumber*pageSize >=maxElements ? maxElements : pageNumber*pageNumber); } public List<Object> getList() { String newSql = this.sqlModify(sql, getBeginElement(), getEndElement()); return (List)db.query(sql, null, new MapListHandler()); } public int getMaxElements() { return maxElements; } public int getMaxPage() { return maxPage; } public int getNext() { return pageNumber+1 >= maxPage ? maxPage : pageNumber+1; } public int getPageNumber() { return pageNumber; } public int getPageSize() { return pageSize; } public int getPrevious() { return pageNumber-1 <=1 ? 1 :pageNumber -1; } public boolean hasNext() { return pageNumber < maxPage; } public boolean hasPrevious() { return pageNumber > 1; } public boolean isFirst() { return pageNumber == 1; } public boolean isLast() { return pageNumber == maxPage; } public void setPageNumber(int pageNumber) { if(pageNumber>maxPage){ this.pageNumber = maxPage; }else if(pageNumber<1){ this.pageNumber = 1; }else{ this.pageNumber = pageNumber; } } public void setPageSize(int pageSize) { this.pageSize = pageSize; } }
发表评论
-
自己写的分页实体类
2015-01-04 20:18 945public class Pager implements ... -
解决Spring MVC用AOP处理事务不起作用的问题
2014-10-31 09:50 26211、Spring MVC 和 Spring 整合的时候,Spr ... -
activiti5.14 扩展用户自定义表
2014-04-30 17:26 8592因项目需要需求,在网上找了很多关于activiti扩展用户 ... -
某快递公司的面试题
2013-06-25 10:13 9731. 重写和重载的区 ... -
利用ant编译发布打包jar文件和打包api文档为rar文件
2011-04-15 14:26 1993首先在build.properties文件中配置好发布时的路径 ... -
将输入流InputStream转换为String
2011-04-15 00:21 3802最近项目中用apache的httpclient中get ... -
Ant的配置与测试
2011-04-13 01:02 976Ant是Java平台下非常棒的批处理命令执行程序,能非常 ... -
java导出CSV文件
2010-11-24 22:09 20018最近有个项目要将数据库中查出来的数据导出到CSV文件,晚上抽时 ... -
set、List、map的区别
2010-08-04 23:59 1805List接口对Collection进行了简单的扩充,Lis ... -
有关Java多线程程序设计
2010-07-28 09:41 873一:理解多线程 多线程是这样一种机制,它允许在 ... -
java生成验证码(支持中文)
2010-07-23 00:08 3036PictureCheckCode.java ... -
一个java程序员应该具备的能力和知识
2010-07-23 00:05 1217目前,JAVA是开发人员的热宠,很多论坛都有不少热爱JAVA的 ... -
Hibernate+Spring+Struts2整合开发中的一个分页显示方案
2010-03-06 22:39 13601、DAO层接口的设计,在MemberDao接口中定义了如下两 ... -
java 快速排序
2010-02-10 00:02 819public class Qsort{ public ... -
java 插入排序
2010-02-10 00:02 1026public class InsertSort{ p ... -
java希尔排序
2010-02-10 00:01 1256public class InsertSort{ p ... -
打印杨辉三角
2010-02-09 23:59 1131public class Syanghui{ pu ... -
java连接Oracle数据库代码
2010-02-09 23:47 1119public class test { /** * @ ... -
java连接mysql数据库代码
2010-02-09 23:46 1416public class MySQLTest { /** ... -
23种设计模式
2010-02-02 23:43 929设计模的示例,完整的请下载附件. 谢谢
相关推荐
MySQL、SQL Server、Oracle 分页是关系数据库管理系统中最基本也是最常用的操作之一,而 Java 分页统一接口实现则是对数据库操作的抽象和封装。本文将对 MySQL、SQL Server、Oracle 分页的实现进行详细的介绍,并...
mysql,oracle,sql server分页总结与比较
sql 分页 针对oracle mysql sqlserver 等数据库的通用类
在数据库管理领域,Oracle SQL和MySQL SQL是两种广泛使用的SQL方言,它们在语法和功能上存在一定的差异。当需要将一个基于Oracle SQL的应用程序迁移到MySQL环境时,就需要进行SQL语句的转换工作。本项目提供了一个...
不同的数据库系统,如SQL Server、MySQL、Oracle,由于其设计原理和语法的不同,在实现分页功能上也有所差异。下面将详细介绍这三种数据库系统的分页方法。 ### SQL Server 分页 SQL Server 中实现分页主要通过`...
本话题主要聚焦于如何在Oracle、MySQL和SQL Server这三种主流关系型数据库中实现分页联合查询。 首先,我们来看Oracle数据库的分页查询。Oracle使用ROWNUM关键字来实现分页。例如,如果我们想获取第10到20条记录,...
本文将详细介绍Oracle、MySQL、SQL Server等常见数据库系统的分页方法。 ### MySQL分页方法 #### 1. 使用`LIMIT`子句 MySQL提供了`LIMIT`子句来实现分页查询。该子句可以接受两个参数:第一个参数为起始行号...
本文将详细介绍Oracle、MySQL以及SQL Server三种主流数据库系统中的分页技术,包括它们各自的实现方法和一些实用技巧。 ### 一、Oracle 分页 Oracle数据库提供了强大的功能来支持分页查询。在Oracle中,主要使用`...
本文将深入探讨SQL Server、MySQL和Oracle这三种主流数据库系统中的分页查询实现方式。 首先,我们来看SQL Server。SQL Server提供了一种称为"TOP"的关键字来实现分页。例如,如果我们想获取第1页(假设每页有10条...
本文将详细介绍Oracle、MySQL以及SQL Server这三种常用数据库管理系统中的分页查询实现方法。 #### 一、Oracle 分页查询 在Oracle中实现分页查询主要依靠`ROWNUM`伪列,这是一种非常简单但功能强大的机制。下面将...
分页技术在Oracle、MySQL和SQL Server等主流数据库系统中都有其独特的实现方式。 **为什么需要分页** 1. **方便用户查看**:在网页或应用程序中,如果一次性加载所有数据,用户可能会被海量信息淹没,分页则可以将...
常见的数据库管理系统包括MySQL、SQL Server、Oracle、DB2等,每种数据库管理系统都有其特有的分页机制和语法。 MySQL分页 MySQL的分页语句使用LIMIT关键字,语法为: ```sql SELECT * FROM table_name LIMIT ...
### 数据库分页技术详解:MySQL、Oracle与SQL Server #### Oracle 分页 在Oracle数据库中实现分页功能,主要依赖于`ROWNUM`伪列。`ROWNUM`用于为查询结果集中的每一行分配一个唯一的编号,从1开始递增。通过控制`...
以上介绍了Oracle、SQL Server和MySQL这三种主流数据库中实现分页的不同方法。虽然这些数据库之间的语法存在差异,但其核心思想都是通过限制返回结果的数量来实现分页效果。在实际应用中,开发人员应根据具体情况...
几条常见的数据库分页SQL 语句,针对oracle,sqlserver,mysql三种常见数据库的分页显示。
- `MySqlHelper.cs`:用于MySQL数据库,提供了与SQL Server和Oracle相似的接口,方便在MySQL环境中进行数据库操作。 - `AccessHelper.cs`:对Microsoft Access数据库的支持,Access是一个轻量级的桌面数据库,常...
本文将详细介绍三种主流数据库(SQL Server、MySQL和Oracle)中的分页SQL语句实现方法。 #### SQL Server 的分页SQL语句实现 SQL Server 支持通过`TOP`关键字来实现分页查询。具体实现方式如下: 1. **查询第M页...
针对这一需求,本文将详细介绍如何在SQL Server中实现有效的分页查询。 ### 方法1:使用NOT IN 这种方法通过先选择前300100条记录的序列号(这里假设`fldserialNo`是唯一标识每一行的字段),然后在外层查询中排除...
本文将基于提供的文件信息,深入探讨三种不同的分页查询方法及其在Oracle、SQL Server(这里用SQL代替)、MySQL中的实现方式,并对它们的性能进行对比分析。 #### 分页方案一:利用Not In和SELECT TOP分页 **基本...
- **Sqlserver**、**Oracle**、**MySql**、**PostgreSql** 和 **SqlLite** 都提供了丰富的内置函数支持,包括数学、日期时间、字符串处理等多方面功能。 #### 五、分页 分页是数据库中常见的需求之一,不同的...