有了数据库下面就要对数据库操作读取留言了!
下面列出显示留言的主要程序
<%@page import="java.sql.*"
import ="java.util.*"
import ="java.io.*"
contentType="text/html; charset=gb2312"
%>
FrontPage 4.0">
萍慧自由空间留言本
bordercolordark="#6666FF" cellpadding="0" cellspacing="0" align="center">
<%//下面处理用户的分页请求 String string_page; int Page,RecoderPage,RecoderRow; try{string_page=request.getParameter("page"); }catch (NullPointerException e){string_page="";} try{Page=Integer.parseInt(string_page); }catch(NumberFormatException e) {Page=0; } java.sql.Connection sqlConn; //数据库连接对象 java.sql.Statement sqlStmt; //语句对象 java.sql.ResultSet sqlRst; //结果集对象 //登记JDBC驱动对象 Class.forName ("org.gjt.mm.mysql.Driver").newInstance (); //连接数据库 sqlConn= java.sql.DriverManager.getConnection ("jdbc:mysql://localhost/p","test",""); //创建语句对象 sqlStmt=sqlConn.createStatement (java.sql.ResultSet.TYPE_SCROLL_INSENSITIVE,java.sql.ResultSet.CONCUR_READ_ONLY); //执行Sql语句 String sqlQuery="select count(*) from comment"; sqlRst=sqlStmt.executeQuery (sqlQuery); sqlRst.next(); int count=sqlRst.getInt(1); //取得总的留言记录数 if (Page>=0)RecoderPage=Page;//处理页面 else RecoderPage=0-Page*10; if (RecoderPage>count/15){ RecoderPage=count/15; Page=RecoderPage; }//页面越界 RecoderRow=RecoderPage*15; //取得要显示的留言记录号 sqlQuery="select * from comment order by userid desc limit "+RecoderRow+",15;"; //一次读取15条记录 sqlRst=sqlStmt.executeQuery (sqlQuery); %> 总共有<%=count%>条留言 <% while (sqlRst.next()) //显示留言 { //取得下一条记录 %> 第<%=sqlRst.getString("userid")%>条
<% } %> <% //下面对留言进行分页 int i=count/15; //总页,每页显示15条记录 int j=i/10; //总的大页 ,没10个页面分一大页 //Page 显示的页面 int StartPage; //int HrefPage; if (Page<0) Page=0-Page*10; //10页分一次 StartPage=Page/10; //10页分一次 out.print ("[共有"+(i+1)+"页]"); //out.print ("共有"+j+"屏"); //out.print ("显示第"+Page+"页"); //out.print ("StartPage="+StartPage); if (StartPage>0) out.print ("|前10页"); for (int k=0;k<10;k++) { int p=StartPage*10+k;
|
<%
//关闭结果集对象
sqlRst.close();
//关闭语句对象
sqlStmt.close ();
//关闭数据库连接
sqlConn.close();
%> 程序结束
程序中的不足:
没有对错误进行捕捉,但是这里只为了对jsp读取Mysql数据库进行讲解。如果是用与作留言本的话一定要对错误进行处理! 我们还要留言呢?