ImageVerifierCode 换一换
格式:DOCX , 页数:15 ,大小:17.77KB ,
资源ID:17619714      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/17619714.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(SQL逻辑和物理分页Word文档格式.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

SQL逻辑和物理分页Word文档格式.docx

1、import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.SQLException;import java.util.ArrayList;import java.util.List;import com.cosmow.pageresultset.entity.Bars; * TODO dao class TestPageResultSetDAO * * Revision History * 2008-7-7,Cosmo,created itpublic class TestPageResultSetD

2、AO private final String FIND_BARS_PAGE = SELECT * FROM YYBARS ORDER BY id; /* */* * 提供JDBC连接方法,返回一个Connection的实例 * return * throws SQLException private Connection getConnection() throws SQLException try final String url = jdbc:oracle:thin:localhost:1521:ORCL final String user = store final String pa

3、ssword = store_password Class.forName(oracle.jdbc.driver.OracleDriver); Connection con = DriverManager.getConnection(url, user, password); return con; catch (ClassNotFoundException e) throw new SQLException(e.getMessage(); * 逻辑分页方法一,该方法使用移位(rs.next)来进行 * param currentPage * 当前页 * param showRows * 一页

4、显示的数据量 public List pageListOne(int currentPage, int showRows) Connection con = null; PreparedStatement ps = null; ResultSet rs = null; ArrayList resultList = new ArrayList= skipBegin & currentNum skipEnd) Bars bar = new Bars(); bar.setId(rs.getLong(id); bar.setName(rs.getString(name bar.setType(rs.g

5、etInt(type bar.setCreatorId(rs.getLong(creator_id resultList.add(bar); if (currentNum = skipEnd - 1) break; currentNum+; catch (SQLException e) e.printStackTrace(); finally if (rs != null) rs.close(); if (ps ! ps.close(); if (con ! con.close(); return resultList;2.逻辑分页的第二种方式利用Scrollable ResultSets(可

6、滚动结果集合)来快速定位到某个游标所指定的记录行,所使用的是ResultSet的absolute()方法。改进代码如下: * 逻辑分页方法二,使用absolute()方法分页 pageListTwo(int currentPage, int showRows) / 利用rs.absolute进行定位 if (!rs.absolute(skipBegin) if (skipBegin if (skipBegin = skipEnd - 1)虽然和第一种方式区别不大,单效率比ResultSet滚动要好,但是absolute()方法并不是所有jdbc驱动都支持。可用如下代码测试当前jdbc驱动是否支

7、持可滚动结果集:int type = rs.getType();if (type = ResultSet.TYPE_SCROLL_INSENSITIVE | type = ResultSet.TYPE_SCROLL_SENSITIVE) System.out.println(Result set is scrollableelseResult set is not scrollable二.物理分页利用数据库本身的一些特性来分页。即:利用了数据库对sql语法的优化,提高分页性能。1.针对Oracle数据库a.根据所使用的数据库特性来组织sql进行分页。b.每次跳转页面的sql查询都不相同。 通用

8、的sql分页方式,“限制行数结果集的倒序”分页,步骤如下: (1).取得符合条件的所有结果集中可以唯一标识的Key值(通常是主键),并正向排序。 (2).利用数据库提供的特殊方法进行“最大结果集”的限制(在Oracle中使用rownum, sql server中使用top, mysql中使用limit.), 该“最大结果集”指包含当前所处页的所有记录数,“最大结果集”应该只包含惟一的Key值。 (3).对步骤(2)中的“最大结果集”进行逆序,并取得“显示当前页显示数量的结果集”,该结果集中只包含惟一的Key值。 (4).通过步骤(3)中所取得的Key值取得显示数据,该显示数据就是当前页应该显示

9、的数据。代码如下: /针对Oracle private final String FIND_BARS_ORACLE = select b3.* from + (select b1.id from (select b.id from yybars b where rownum = ? order by b.id desc) b1 where rownum order by b1.id desc) b2, yybars b3 where b2.id = b3.id order by b2.id * 物理分页方法一针对Oracle,使用sql语句的id查询来进行 pageListThree(int

10、currentPage, int showRows) ps = con.prepareStatement(FIND_BARS_ORACLE); /传入参数,第一个参数标示包含该页总共有几条数据 ps.setInt(1, showRows * currentPage); /第二个参数标示将取得在第一个参数所指定的数据中应该显示的数据 ps.setInt(2, showRows);2.针对MySQL数据库在MySQL数据库中offset关键字的意思是越过,而limit关键字的意思是“限制”,利用这两者结合可轻松分页。(1)取得符合条件的结果集,包含全字段。(2)利用offset关键字越过一段结果集

11、(被越过的结果集就是(当前页 - 1) * 一页显示数)。(3)利用limit关键字限制取得一段结果集(被限制取得的结果集就是一页显示数) private final String FIND_BARS_MYSQL = select * from yybars order by id limit ? offset ? * 物理分页方法二针对mysql,使用sql语句的limit和offset来进行分页 pageListFour(int currentPage, int showRows) ps = con.prepareStatement(FIND_BARS_MYSQL); /传入参数,第一个参数表示显示几条记录(limit关键字的含义) ps.setInt(1, showRows); /第二个参数表示丢弃几条记录(offset关键字的

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1