1.一个请求对应一个控制器
优点:逻辑清晰
缺点:会造成控制器过多
2.关于跳转到修改用户界面的两种思路:
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;
优点:逻辑清晰
缺点:会造成控制器过多
可以这样考虑:一类事务请求,我们做一个控制器,即让该控制器可以处理多个请求,
为了让一个控制器去区分不同的请求,我可以,在发出请求的同事,再带一个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);