基于oracle的分页功能(jdbc实现)
2016-11-05 21:35
351 查看
1.有一段时间一直用的hibernate进行页面的分页功能,很简单,后来一次突然是使用Jdbc进行查询分页,我第一反应是使用subList这个方法来取list的子集,但是遇到要读取三千条数据进行分页或者更多的时候,这样就会失去效率,后来使用oracel中的rownum实现了
2.首先看我们的目标数据(测试数据有点少)
3.结果
4.至于前台怎么分页,我使用的是jquery.pagination.js这个插件。下面就贴一下大概的代码,不具体介绍了。
5.分页就这样做完了,具体这个分页工具要导入对应的js和css,还有一些参数的设定就根据自己的需求来,可以全看api之类的介绍。
2.首先看我们的目标数据(测试数据有点少)
(具体jdbc连接数据库参考上篇博客,这里不再累述,这里还有一个Page分页类) //查找全部结果集sql String sql="select t.* from yz_test_tree t"; //查询结果集总量sql String countSql = "select count(0) from ("+sql+")"; //开始执行第二个sql,设置结果集总条数 ps = conn.prepareStatement(countSql); res = ps.executeQuery(); while (res.next()) { page.setTotalCount(res.getInt("COUNT(0)")); } //执行第一个sql,查询需要的结果集 这里会有从前台传过来的分页参数(在Page中): 1.currentPage,当前页(这里默认0,表示第一页) 2.pageSize,每页显示条数(这里默认10) //当前返回的数据从第(+1)条开始,这里是0表示从第一条到第十条 int startPage = page.getCurrentPage*page.getPageSize(); String endSql = pagingByOracle(sql,startPage,page.getPageSize()); //执行endSql就是1-10条数据,我们需要的 ps = conn.prepareStatement(endSql); res = ps.executeQuery(); while(res.next()){ //迭代出res的结果集返回到前台就可以了 } //下面写实现分页工具类pagingByOracle public String pagingByOracel(String sql,int startPage,int pageSize){ //当前页最大值 int maxPage = startPage+pageSize; String endSql = "select * from ("+ "select t.*,rownum row_ from (" +sql + ") t"+ " where rownum<="+maxPage+ ") where row_>"+startPage; return endSql; } //在这个编辑器拼装sql很麻烦,可能会存在小问题,我用oracle测一遍
3.结果
这里就得到了第一页,1-10条数据 //rownum排序始终从1开始,所以,在设置开始数据值得时候, 要先把rownum查出来,在进行比较选择
4.至于前台怎么分页,我使用的是jquery.pagination.js这个插件。下面就贴一下大概的代码,不具体介绍了。
<div id="pa" class="pagination"></div> <script> //生成分页工具条 $("#pa").pagination( ${page.totalCount}, //结果总数 { //当前页,0表示第一页 current_page: ${page.currentPage}, //每页显示数据多少 items_per_page: ${page.pageSize}, //回调函数 callback: 为翻页调用次函数 }); </script>
5.分页就这样做完了,具体这个分页工具要导入对应的js和css,还有一些参数的设定就根据自己的需求来,可以全看api之类的介绍。
相关文章推荐
- ASP.NET调用Oracle分页存储过程并结合ASPnetpager分页控件 实现分页功能
- 基于Oracle,采用JDBC、Hibernate不同方式实现自定义序列主键生成
- aspnetpager+repeater+oracle实现分页功能
- 分页的封装——java实现(基于oracle)
- Jdbc实现页面分页查询功能
- ORACLE三层嵌套实现分页功能和ROWNUM的使用
- 基于JDBC的通用分页实现 (转)
- hibernate、JDBC 实现 oracle ID 的自动增加 功能
- oracle实现分页与mysql实现分页功能
- .NET基于分页控件实现真分页功能
- Aspnetpager+GridView+oracle实现分页功能
- 利用JQuery方便实现基于Ajax的数据查询、排序和分页功能
- C#实现 ORACLE的分页功能
- 利用JQuery方便实现基于Ajax的数据查询、排序和分页功能
- .NET基于分页控件实现真分页功能
- jsp连接oracle实现分页功能的源代码
- 结合JDBC和Oracle ROWNUM实现分页查询
- Oracle 实现分页查询功能
- Oracle利用数据伪列实现分页功能
- oracle中使用触发器实现查询分页功能