为了账号安全,请及时绑定邮箱和手机立即绑定

结果集到分页

结果集到分页

DIEA 2019-08-02 16:12:39
结果集到分页如何将Resultset对象转换为JSP上的分页视图?例如,这是我的查询和结果集:pst = con.prepareStatement("select userName, job, place from contact");rs = pst.executeQuery();
查看完整描述

3 回答

?
繁花不似锦

TA贡献1851条经验 获得超4个赞

这个Oracle示例是错误的。

是的,在外部选择具有良好的ROWNUM值,但它仍然是伪列,所以我们不能使用BETWEEN。我们还需要一个选择。

正确的sql代码是:

SELECT c.*
  FROM (SELECT c.*, ROWNUM as rnum
          FROM (SELECT id, username, job, place FROM contact ORDER BY id) c) c
 WHERE c.rnum BETWEEN 5 AND 10

同志们,使用solid sql string和Statement类是SLOOOW。每次执行时,Oracle都必须解析SQL。

//Slooow exampleSatement stmt = con.createStatement();ResultSet rs = stmt.executeQuery("select * from my_table where id = 11");

使用PreparedStatement和绑定参数。

   //Faster example
   PreparedStatement ps = conn.getPrepareStatement("select * from my_table where id = ?");
   ps.setInt(1, 11);

最快的解决方案是将你的sql放在oracle存储过程中并使用CallableStatement来调用它。

//Fastest exampleCallableStatement cs = conn.prepareCall("{? = call my_plsql_function(?)}");cs.setInt(1, 11);


查看完整回答
反对 回复 2019-08-02
?
一只斗牛犬

TA贡献1784条经验 获得超2个赞

以下是您可以做的几件事:

  • 将结果集设置为某些对象/记录列表

  • 根据您所需的页面大小,根据结果集确定您将拥有多少页面。

  • 根据要在页面上显示的项目数检查所需页面的请求参数和偏移量。因此,如果您在第4页上显示12,则偏移量为48。

  • 根据项目数确定总页数。

  • 根据您确定的偏移量显示您的项目(仅显示从第48项开始)

  • 根据您确定的总页数生成页面数量的分页。

=======

这是你的基本方法。你可以用以下方法调整:

  • 确定将查询限制到页面的方法(但这不会帮助您确定页面大小)

  • 奇特的分页方式

  • 等等..


查看完整回答
反对 回复 2019-08-02
  • 3 回答
  • 0 关注
  • 449 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号