急求 怎样处理jsp分页问题, 在线等 急急急!!!

bageer707 2004-09-15 06:38:19
我想用jsp 显示数据库里面的内容,由于数据很多,必须进行分页处理,


谁知道,轻快帮忙,在下在线等 解决问题马上给分
...全文
328 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
xiaowenand 2004-09-16
  • 打赏
  • 举报
回复
这个绝对有用,是SQL2000数据库

<%@ page contentType="text/html; charset=GBK"%>
<%@ page import="java.sql.*"%>
<%
int pagesize=2;//每页显示记录数
int recordcount=0;//记录总数
int pagecount=0;//总页数
int pageid=1;//待显页码
Connection conn=null;
try{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
conn=DriverManager.getConnection("jdbc:odbc:jspguest","sa","sa");
Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
//String name=request.getParameter("name");
//String pwd=request.getParameter("pwd");
//String sql="select * from system where adminname like '%"+name+"%' and name like '%"+pwd+"%' order by user_id desc";
String sql="select * from message";
ResultSet rs=stmt.executeQuery(sql);
rs.last();
recordcount=rs.getRow();//取得总记录数
pagecount=(recordcount%pagesize==0?(recordcount/pagesize):(recordcount/pagesize)+1);//取得总页数
int count=1;
String strpage=request.getParameter("pageid");
if(strpage==null) pageid=1;
else pageid=Integer.parseInt(strpage);
if(pageid>recordcount) pageid=recordcount;
if(recordcount>0){
rs.absolute((pageid-1)*pagesize+1);}
int i=0;
//rs.previous();
rs.beforeFirst();
while(rs.next()&&count<=pagesize){
count++;
i++;
out.print(rs.getString("name"));
out.print("||");
out.print(rs.getString("title"));
out.print("<br>");

}
out.print("共");
out.print(pagecount);
out.print("页");

out.print("共");
out.print(recordcount);
out.print("条");

out.print("第");
out.print(pageid);
out.print("页");

out.print("<br>");
if(pageid<pagecount){
out.print("<a href=del.jsp?pageid=");
out.print(pageid+1);
out.print(">下一页</a>");}
if(pageid>1){
out.print("<a href=del.jsp?pageid=");
out.print(pageid-1);
out.print(">上一页</a>");}
out.print("<br>");
for(int j=1;j<=pagecount;j++){
out.print("<a href=del.jsp?pageid=");
out.print(j);
out.print(">");
out.print(j);
out.print("</a>");}
stmt.close();
conn.close();
}
catch(ClassNotFoundException e){
out.println(e.getMessage());
}
catch(SQLException e) {
out.println(e.getMessage());
}
finally{
try{
if(conn != null)
conn.close();
}
catch(Exception e){}
}
%>
pifulu 2004-09-15
  • 打赏
  • 举报
回复
java.lang.NullPointerException

把所有出错信息都贴上来!!
csharpjavahhl 2004-09-15
  • 打赏
  • 举报
回复
建议先仔细看看书!这样问问题没有多大用处
bageer707 2004-09-15
  • 打赏
  • 举报
回复
有这个错误是怎么回事?

java.lang.NullPointerException

请高手帮忙
skyct 2004-09-15
  • 打赏
  • 举报
回复
看看我这个行不行,对照你的改一改

m_UserEditDAO.setLength(10);//设置每页显示记录数
int ipage;//当前页
try
{
String page=request.getParameter("page");//分页参数,读取请求的当前页
ipage=java.lang.Integer.parseInt(page,10);
}
catch (Exception e)
{
ipage=m_UserEditForm.getPage();
}
if(ipage<1)ipage=1;
Collection col = m_UserEditDAO.findSQL(sql,ipage);//通过DAO对象查询数据
request.setAttribute("UserEdit",col); //保存数据

String pagestr=m_UserEditDAO.getPagestr(ipage);//分页字符串,分页内容
String s_find,str;
if(!"search".equals(search)) //查找和全部显示两个不同的操作,其分页字符串不同,在此进行处理。如果是全部显示则去掉"search=search&"
{
s_find="search=search&";
while(pagestr.indexOf(s_find)!=-1)
{
str=pagestr.substring(0,pagestr.indexOf(s_find));
str+=pagestr.substring(pagestr.indexOf(s_find)+s_find.length(),pagestr.length());
pagestr=str;
}
}
m_UserEditForm.setPagestr(pagestr);
m_UserEditForm.setAction(action);
request.setAttribute("UserEditForm",m_UserEditForm);
bageer707 2004-09-15
  • 打赏
  • 举报
回复
我用的是SQL,可不知道为什么,就是不能显示数据

能给我提供一个源代码吗

谢谢!
tjl713 2004-09-15
  • 打赏
  • 举报
回复
如果是用的是SQL Server 可以用子查询;如果是MySQL,你要用到limit这个关键字比如:
select * from t_user limit 3,这是搜前3条记录;
select * from t_user limit 3,5 这是搜从第3条记录开始的5条记录。

根据实际情况自己灵活运用。
csharpjavahhl 2004-09-15
  • 打赏
  • 举报
回复
一定是在什么地方没有获得具体的数值,这种异常一般是对不存在的数据进行处理产生的
bageer707 2004-09-15
  • 打赏
  • 举报
回复
不知道为什么显示以下错误


java.lang.NumberFormatException: null

真是急死我了 是什么原因?
redlaputa 2004-09-15
  • 打赏
  • 举报
回复
去search.csdn.net里面
查查分页
csharpjavahhl 2004-09-15
  • 打赏
  • 举报
回复
<%@ page language="java" import="java.util.*,java.sql.*" %>
<%@ page contentType="text/html;charset=gb2312"%>
<jsp:useBean id="cn" scope="page" class="myConnection.Conn" /><!--引用数据库操作的bean,自己完成,这里不再赘述-->
<%
int curpage=1;//当前页
int page_record=20;//每页显示的记录数
//用下面的方法(sql查询完成,速度快)
curpage=Integer.parseInt(request.getParameter("page"));//获取传递的值,需要显示的页
ResultSet rs=cn.rsexecuteQuery("select top "+page_record+" * from tablename where id not in (select top "+(curpage*page_record)+" id from tablename order by id desc) order by id desc");
//本查询语句得到的是所要显示的1000页的20条记录,大致思路为――子查询排除需要显示的记录前的所有记录,父查询则对余下的记录进行降序排列
while(rs.next) {
out.println(rs.getInt("id").toString());
}
rs.close();
%>
bageer707 2004-09-15
  • 打赏
  • 举报
回复
能不能说的再详细呢

谢谢
晨星 2004-09-15
  • 打赏
  • 举报
回复
SELEC TOP 20 *
FROM TABLE
WHERE ID NOT IN (SELECT TOP 20 * (N - 1)) ID FROM TABLE ORDER BY ID)
ORDER BY ID

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧