JSP+mysql模糊分页查询,第一也可以显示,但是下一页一点就出错误。哪位高手帮忙看下啊。
Connectioncon=null;Statementps=null;ResultSetrs=null;Stringurl;//数据库连接字符串Stringsql;//...
Connection con = null;
Statement ps = null;
ResultSet rs = null;
String url;//数据库连接字符串
String sql;//sql语句
int pageSize = 3;//每页显示的记录数
int rowCount;//记录总数
int pageCount;//总页数
int intPage;//当前页码
String str = new String(request.getParameter("a"));
String strPage = (String)session.getAttribute("page");//取得待显示的页码
con = ConnectionFactory.getConnection();//创建一个可以滚动的只读的sql语句对象
ps = con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
StringBuilder sber = new StringBuilder("select id,realname,gender,stuno,classno,identityid,phone,email,status,descr from student");
String realname = request.getParameter("realname");
String classNo = request.getParameter("classNo");
String stuno = request.getParameter("stuno");
{
中间这一部分是拼的sql语句
}
rs = ps.executeQuery(sber.toString());
rs.last();
rowCount = rs.getRow();
pageCount = (rowCount % pageSize == 0) ? rowCount/ pageSize : rowCount /
pageSize + 1;
if (strPage == null || strPage == "") {
intPage = 1;
} else {
intPage = Integer.parseInt(strPage);
if (intPage < 1) {
intPage = 1;
}
}
if (intPage > pageCount) {
intPage = pageCount;//调整待显示的页码
}
StringBuffer sb = new StringBuffer();
if (pageCount > 0) {
//将记录指针定位到待显示的第一条记录上
rs.absolute((intPage - 1) * pageSize + 1);
}
if(rowCount == 0){
sb.append("<tr><td colspan=\"10\">NO DATA");
sb.append("</td></tr>");
}else{
//显示数据
int i = 0;
int n = 1;
while (i < pageSize && !rs.isAfterLast()) {
Student stu = new Student();
stu.setId(rs.getInt("id"));
stu.setName(rs.getString("realname"));
sb.append("<tr><td>" + (n++) + "</td>");
sb.append("<td>" + stu.getName() + "</td>");
}
rs.next();
i++;
}
}
%>
<body>
<form action="/ums/pages/selectCut.jsp" method="post">
<div>
第<%=intPage%>页 共<%=pageCount%>页
<%
if (intPage > 1) {
%><a href="/ums/pages/selectCut.jsp?page=<%=intPage - 1%>">上一页</a>
<%
}
%>
<%
if (intPage < pageCount) {
%><a href="/ums/pages/selectCut.jsp?page=<%=intPage + 1%>&a=<%=str %>">下一页</a> 展开
Statement ps = null;
ResultSet rs = null;
String url;//数据库连接字符串
String sql;//sql语句
int pageSize = 3;//每页显示的记录数
int rowCount;//记录总数
int pageCount;//总页数
int intPage;//当前页码
String str = new String(request.getParameter("a"));
String strPage = (String)session.getAttribute("page");//取得待显示的页码
con = ConnectionFactory.getConnection();//创建一个可以滚动的只读的sql语句对象
ps = con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
StringBuilder sber = new StringBuilder("select id,realname,gender,stuno,classno,identityid,phone,email,status,descr from student");
String realname = request.getParameter("realname");
String classNo = request.getParameter("classNo");
String stuno = request.getParameter("stuno");
{
中间这一部分是拼的sql语句
}
rs = ps.executeQuery(sber.toString());
rs.last();
rowCount = rs.getRow();
pageCount = (rowCount % pageSize == 0) ? rowCount/ pageSize : rowCount /
pageSize + 1;
if (strPage == null || strPage == "") {
intPage = 1;
} else {
intPage = Integer.parseInt(strPage);
if (intPage < 1) {
intPage = 1;
}
}
if (intPage > pageCount) {
intPage = pageCount;//调整待显示的页码
}
StringBuffer sb = new StringBuffer();
if (pageCount > 0) {
//将记录指针定位到待显示的第一条记录上
rs.absolute((intPage - 1) * pageSize + 1);
}
if(rowCount == 0){
sb.append("<tr><td colspan=\"10\">NO DATA");
sb.append("</td></tr>");
}else{
//显示数据
int i = 0;
int n = 1;
while (i < pageSize && !rs.isAfterLast()) {
Student stu = new Student();
stu.setId(rs.getInt("id"));
stu.setName(rs.getString("realname"));
sb.append("<tr><td>" + (n++) + "</td>");
sb.append("<td>" + stu.getName() + "</td>");
}
rs.next();
i++;
}
}
%>
<body>
<form action="/ums/pages/selectCut.jsp" method="post">
<div>
第<%=intPage%>页 共<%=pageCount%>页
<%
if (intPage > 1) {
%><a href="/ums/pages/selectCut.jsp?page=<%=intPage - 1%>">上一页</a>
<%
}
%>
<%
if (intPage < pageCount) {
%><a href="/ums/pages/selectCut.jsp?page=<%=intPage + 1%>&a=<%=str %>">下一页</a> 展开
3个回答
展开全部
用后台没写过分页 我想可能是后台只传了一次数据到页面上 点击下一页是后台数据没传页面 我以前用的时js写的 你想要的话 可以给你
追问
谢谢你啦,这个问题我在提问以后没一会儿就知道在哪出问题了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
改正后的东西给你发过去了,看看能用么。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
我想问怎么回事?我现在不知道那个地方错,也是下一页上一页就错误了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询