关于JSP分页的问题

fishkey 2005-08-15 12:07:33
<%@page contentType="text/html;charset=gb2312"%>
<%@page import="java.sql.*"%>
<jsp:useBean id="test" scope="page" class="chuli.DBConn"/>
<%
/*if(session.getValue("cID")==null)

response.sendRedirect("index.jsp");*/

%>
<%
request.setCharacterEncoding("GBK");
String strName="";
String strSQL="";
int PageSize=5;
int Page=1;
int totalPage=1;
int totalrecord=0;
if(request.getParameter("textfield")==null)strName="";
else{
strName=request.getParameter("textfield");
}

strSQL="select count(*) from book where s_name like '%"+strName+"%'";
ResultSet rst = test.executeQuery(strSQL);
if(rst.next())totalrecord=rst.getInt(1);
if(totalrecord%PageSize==0)
totalPage = totalrecord/PageSize;
else
totalPage = (int)Math.floor(totalrecord/PageSize)+1;
if(totalPage==0)totalPage=1;
if(request.getParameter("Page")==null||request.getParameter("Page").equals(""))
Page=1;
else
try{
Page=Integer.parseInt(request.getParameter("Page"));
}
catch(java.lang.NumberFormatException e){
Page=1;
}
if(Page<1)Page=1;
if(Page>totalPage)Page=totalPage;
out.print("<table border='1'>");
out.print("<tr><td>书号</td>");
out.print("<td>书名</td>");
out.print("<td>作者</td>");
out.print("<td>类型</td>");
out.print("<td>出版日期</td>");
out.print("<td>出版单位</td></tr>");
ResultSet rs = test.executeQuery("select * from book where s_name like '%"+strName+"%'");
rs.absolute((Page-1)*PageSize+1);
for(int i=1;i<=PageSize;i++){

out.print("<tr><td>"+rs.getString(1)+"</td>");
out.print("<td>"+rs.getString(2)+"</td>");
out.print("<td>"+rs.getString(3)+"</td>");
out.print("<td>"+rs.getString(4)+"</td>");
out.print("<td>"+rs.getString(5)+"</td>");
out.print("<td>"+rs.getString(6)+"</td></tr>");
if(!rs.next())break;
}
out.print("</table>");

%>
<from action="select.jsp" method="get">
<%
if(Page!=1){
out.print(" <A HREF=select.jsp?Page=1>第一页</A>");
out.print(" <A HREF=select.jsp?Page="+(Page-1)+">上一页</A>");
}
if(Page!=totalPage){
out.print(" <A HREF=select.jsp?Page="+(Page+1)+">下一页</A>");
out.print(" <A HREF=select.jsp?Page="+totalPage+">上一页</A>");
}
%>
<br>输入页数:<input type="text" name="Page" size="3">
页数:<font COLOR="Red"><%=Page%>/<%=totalPage%></FONT>
</FORM>


javaBean


package chuli;
import java.sql.*;

/**
*
* @author wangwei
*/
public class DBConn {
String sDBDriver = "sun.jdbc.odbc.JdbcOdbcDriver";
String sConnStr = "jdbc:odbc:student";
Connection conn = null;
ResultSet rs = null;

/** Creates a new instance of TestDbCon */
public DBConn() {
try{
Class.forName(sDBDriver);
}catch(java.lang.ClassNotFoundException e){
System.err.println(e.getMessage());
}
}
public ResultSet executeQuery(String sql){
try{
conn=DriverManager.getConnection(sConnStr,"yljxd","3200467");
Statement stmt = conn.createStatement();
rs = stmt.executeQuery(sql);


}catch(SQLException ex){
System.out.println(ex.getMessage());
}
return rs;
}
public int executeUpdate(String sql){
int result = 0;
try{
conn=DriverManager.getConnection(sConnStr,"yljxd","3200467");
Statement stmt = conn.createStatement();
result = stmt.executeUpdate(sql);

}catch(SQLException ex){
System.out.println(ex.getMessage());
}
return result;
}


}
不知道哪错了...哪位大哥指点一下啊!!~!~~
...全文
150 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
wanchao2001 2005-08-16
  • 打赏
  • 举报
回复
楼上的正解,一个返回类型错误,一个是要指明客户端游标类型
fishkey 2005-08-16
  • 打赏
  • 举报
回复
Statement stmt = conn.createStatement();
这个换成 Statement stmt = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
就OK了..唉!~~~~
fishkey 2005-08-16
  • 打赏
  • 举报
回复
返回类型类型没有错...是客户端游标类型没有指明出的错
thumb3344 2005-08-15
  • 打赏
  • 举报
回复
public int executeUpdate(String sql){
int result = 0;
try{
conn=DriverManager.getConnection(sConnStr,"yljxd","3200467");
Statement stmt = conn.createStatement();
result = stmt.executeUpdate(sql);

}catch(SQLException ex){
System.out.println(ex.getMessage());
}
return result;
}

executeUpdate(String sql) 这个return int,不是返回ResulstSet
chai168 2005-08-15
  • 打赏
  • 举报
回复
你做的这个东西好乱呀,做一个数据结构的BEAN,再做一个业务javaBean里面做一个方法,将pageSize,page_count,page_total传进去,返回一个Collection,数据放在里面。这样比较清晰,jsp页面上要做的只是调用它,

try {
if (request.getParameter("Page") == null || request.getParameter("Page").equals(""))
page_count = 1;
else
page_count = Integer.parseInt(request.getParameter("Page"));
}
catch (java.lang.NumberFormatException e) {
page_count = 1;
}
if (page_count < 1) page_count = 1;
totalPage = messageBean.getTotal();
if (totalPage % pageSize == 0) {
totalPage = totalPage / pageSize;
}
else {
totalPage = (int) Math.floor(totalPage / pageSize) + 1;
}
if (totalPage == 0) {
totalPage = 1;
}
if (page_count > totalPage) page_count = totalPage;

Collection messages = messageBean.getMessage(page_count, pageSize, totalPage);
Iterator it = messages.iterator();
while (it.hasNext()) {
chai168 2005-08-15
  • 打赏
  • 举报
回复
public int executeUpdate(String sql){
int result = 0;
try{
conn=DriverManager.getConnection(sConnStr,"yljxd","3200467");
Statement stmt = conn.createStatement();
result = stmt.executeUpdate(sql);

}catch(SQLException ex){
System.out.println(ex.getMessage());
}
return result;
}
有错,返回类型不一样

67,512

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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