分页笔记

来源:互联网 发布:玫琳凯2号面膜淘宝网 编辑:程序博客网 时间:2024/04/28 11:42
1.一个请求对应一个控制器
优点:逻辑清晰
缺点:会造成控制器过多

可以这样考虑:一类事务请求,我们做一个控制器,即让该控制器可以处理多个请求,

为了让一个控制器去区分不同的请求,我可以,在发出请求的同事,再带一个type=del或type=add或type=update等等,

在控制器中接收type的值,从而判断用户希望做什么事情!


2.关于跳转到修改用户界面的两种思路:

(1)传递用户id号的同时,把用户的其它信息一并传递,这样可以减少数据库查询的次数

(缺点:增加网络开销 100字节*1000000*2,优点:减少对数据库的一次操作)

(2)只传递用户id号,控制器接收到id后,再查询数据库,从而显示

3.分页思路:
定义四个分页变量
pageNow  表示第几页,该变量是由用户来决定,因此变化
pageSize  每页显示几条记录,由程序制定,也可由用户定制
pageCount  表示共有多少页,该变量是计算出来
rowCount  共有多少条记录,该变量是查询数据库得到

如何确定pageCount
(1)
if(rowCount%pageSize==0)
{
    pageCount = rowCount/pageSize;
}
else
{
    pageCount = rowCount/pageSize+1;
}

(2)
上面的算法等价于
pageCount = rowCount%pageSize==0 ? pageCount = rowCount/pageSize
:pageCount = rowCount/pageSize+1}

(3)
更简单的算法是:
pageCount = (rowCount-1)/pageSize+1;



假设每页五行记录
即pageSize=5;
则第1行到第5行为第一页;
第6行到第10行为第二页;
。。。

oracle数据库:
选出第二页的记录为:

即选出记录中第6到第10行的记录

SQL> select * from (select t.*, rownum rn from (select * from scott.emp order by empno) t where rownum<=10) where rn>=6;


Java中的用字符串变量表示方法

选出第二页记录时

pageSize=5;

pageNow=2;


String sql =  "select * from (select t.*, rownum rn from (select * from scott.emp order by empno) t where rownum<="+pageSize*pageNow+") where rn>="+(pageSize*(pageNow-1)+1);






原创粉丝点击