java分页怎么实现

怕面试的时候问到,一种是:代码分页,查询出所有的记录,然后分页显示,另一种是sql分页,用limit。第一种有效率问题,第二种比较好(但也感觉有问题不知道是什么)。还有s... 怕面试的时候问到, 一种是:代码分页,查询出所有的记录,然后分页显示,另一种是sql分页,用limit。第一种有效率问题,第二种比较好(但也感觉有问题不知道是什么)。还有spring有分页技术,但是我没研究过,可以简单介绍下吗?怎么实现比较好 展开
 我来答
javajustdodo
2011-12-02
知道答主
回答量:33
采纳率:0%
帮助的人:19.6万
展开全部
<body>
<%! int pageSize=3; //每页显示的记录数
int pageCount=0; //分页后的总页数
%>
<FORM action="bookfind1.jsp" method=get >
输入页码数<Input Type="text" name="showPage" size="4" >
<Input Type="submit" value="提交">
</FORM>
<%
Connection con;
Statement sql;

try{
Class.forName("com.mysql.jdbc.Driver");
}
catch(ClassNotFoundException e){}

con=DriverManager.getConnection("jdbc:mysql://localhost:3306/tybook","root","123");
sql=con.createStatement();
Statement sql1 = con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY);

//返回可滚动的结果集:
ResultSet rs=sql1.executeQuery("SELECT * FROM books");
rs.last(); //将游标移动到最后一行
int lastRow=rs.getRow(); //获取最后一行的行号
//计算分页后的总页数
pageCount=(lastRow%pageSize==0)?(lastRow/pageSize):(lastRow/pageSize+1);
int showPage=1; //当前显示的初始页数
%>
<P> 共有<%=pageCount%>页
每页显示<%=pageSize%>条记录.
<%
String integer=request.getParameter("showPage");//获取客户输入页数
System.out.print(integer);
if(integer==null){
integer="1";
}
try {
showPage=Integer.parseInt(integer);
}
catch(NumberFormatException e){
showPage=1;
}
if(showPage<=1){
showPage=1;
}
if(showPage>=pageCount){
showPage=pageCount;
}
%>
<BR>目前显示第<%=showPage%>页
<%
//如果要显示第showPage页,那么计算游标应移到位置posion
int posion=(showPage-1)*pageSize+1;
rs.absolute(posion); // 设置游标的位置
out.print("<Table Border bgcolor='74bbc0'>");
out.print("<TR>");
out.print("<TH width=100>"+"学号");
out.print("<TH width=100>"+"姓名");
out.print("<TH width=50>"+"学分");
out.print("</TR>");
for (int i=1;i<=pageSize;i++){
out.print("<TR>");
out.print("<TD >"+rs.getString(1)+"</TD>");
out.print("<TD >"+rs.getString(2)+"</TD>");
out.print("<TD >"+rs.getString(3)+"</TD>");
out.print("</TR>") ;
rs.next();
}
out.print("</Table>");
con.close(); //关闭连接
%>
</body>
tl528428
2011-12-01 · 超过13用户采纳过TA的回答
知道答主
回答量:116
采纳率:100%
帮助的人:46.6万
展开全部
第一种分页,一般都是用jquery分页主键,把内容全部查询出来现实,第二种分页相对来说好些,limit是mysql中用到的,sqlserver中用的是top,spring分页不怎么了解,好像是hibernate吧,如:q.setFirstResult(2);
q.setMaxResults(100);
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
软件方法学
2011-12-01 · TA获得超过288个赞
知道答主
回答量:104
采纳率:0%
帮助的人:84.7万
展开全部
数据少的情况下,用第一种没问题,如果数据量过大,那就要用第二种,一般情况下,企业的数据都是上万行,你说用那种
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
gegecuicui
2011-12-01 · TA获得超过616个赞
知道小有建树答主
回答量:802
采纳率:0%
帮助的人:497万
展开全部
limit 是mysql的 现在基本用的少了
大多数都是子查询实现的
更多追问追答
追问
子查询?
追答
select    (select  )  where  between ?  and ?
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
lxq617617
2011-12-01
知道答主
回答量:25
采纳率:0%
帮助的人:17.6万
展开全部
limit 只适用于mysql,用SQL写分页,要看是什么数据库,如果是oracle就可以用子查询,可以写存储过程来做分页,传入两个参数,一个是当前第几页,另一个参数是每页显示多少条记录!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式