วิธีใช้ JSP+MySQL เพื่อสร้างสมุดเยี่ยมชม (2)
ผู้เขียน:Eve Cole
เวลาอัปเดต:2009-07-02 17:13:19
เมื่อคุณมีฐานข้อมูลแล้ว คุณจะต้องอ่านข้อความสำหรับการดำเนินการฐานข้อมูล!
โปรแกรมหลักสำหรับการแสดงข้อความมีดังต่อไปนี้:
<%@page import="java.sql.*"
นำเข้า = "java.util.*"
นำเข้า = "java.io.*"
contentType="text/html; charset=gb2312"
-
<html>
<หัว>
<title>สมุดเยี่ยมพื้นที่ว่าง Pinghui</title>
<meta name="เครื่องกำเนิดไฟฟ้า" content="Microsoft FrontPage 4.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<style type="text/css"><!--
เนื้อความ {ขนาดตัวอักษร: 9pt}
td { ขนาดตัวอักษร: 9pt}-->
</สไตล์>
</หัว>
<ร่างกาย>
<p align="center"><u><font size="5" face="华文新伟">สมุดเยี่ยมชม Pinghui Free Space</font></u></p>
<ความกว้างของตาราง="75%" border="1" bgcolor="#FFCCFF" bordercolorlight="#0000FF"
bordercolordark="#6666FF" cellpadding="0" cellspacing="0" align="center">
<tr>
<td colspan="5" height="202">
<%//ต่อไปนี้จะจัดการคำขอเพจของผู้ใช้
สตริง string_page;
หน้า int,RecoderPage,RecoderRow;
ลอง{string_page=request.getParameter("page");
}จับ (NullPointerException e){string_page="";}
ลอง {Page=Integer.parseInt(string_page);
} จับ (NumberFormatException จ)
{หน้า=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", "ทดสอบ", "");
//สร้างวัตถุคำสั่ง
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.ถัดไป();
int count=sqlRst.getInt(1); //รับจำนวนบันทึกข้อความทั้งหมด
ถ้า (หน้า>=0)RecoderPage=Page;//ประมวลผลหน้า
อื่น RecorderPage=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%> ข้อความ
<% ในขณะที่ (sqlRst.next()) // แสดงข้อความ
{ //รับบันทึกถัดไป %> <%=sqlRst.getString("userid")%>
<ความกว้างของตาราง = "95%" border = "1" cellspacing = "1" cellpadding = "1"
bordercolorlight="#6666FF" bordercolordark="#6666FF" bgcolor="#CCCCFF" align="center">
<tr>
<td width="25%">ชื่อเล่น: <%=sqlRst.getString("username")%></td>
<td width="25%">เพศ: <%=sqlRst.getString("sex")%></td>
<td colspan="2" width="50%">ที่อยู่: <%=sqlRst.getString("ที่อยู่") %></td>
</tr>
<tr>
<td width="25%">โทรศัพท์: <%=sqlRst.getString("telnumber")%></td>
<td width="25%">รหัสไปรษณีย์:<%=sqlRst.getString("post")%></td>
<td width="25%">OICQ:<%=sqlRst.getString("oicq")%></td>
<td width="25%">ICQ:<%=sqlRst.getString("icq")%></td>
</tr>
<tr>
<td colspan="2" width="50%">อีเมล:
<a href="mailto:<%=sqlRst.getString("email")%>" title="เขียนถึงบุคคลที่ฝากข้อความไว้"><%=sqlRst.getString("email")%></a ></ td>
<td colspan="2" width="50%">URL:
<a href target="_blank"></a><a href="mailto:<%=sqlRst.getString("url")%>" title="เขียนถึงบุคคลที่ทิ้งข้อความ">
<%=sqlRst.getString("urltitle")%></a></td>
</tr>
<tr>
<td colspan="4"><font style="line-height: 150%;color: สีเขียว">
ข้อความ:<%=sqlRst.getString("comment")%><br>
-<%=sqlRst.getString("เวลา") %>
(จาก <%=sqlRst.getString("ip") %>)</font></td>
</tr>
</ตาราง>
<hr align="center" noshade size="2" width="95%">
-
//เพจข้อความด้านล่างนี้
int i=count/15; //หน้ารวม แต่ละหน้าแสดง 15 รายการ
int j=i/10; //รวมหน้าใหญ่ ไม่มี 10 หน้าถูกแบ่งเป็นหน้าใหญ่หน้าเดียว
//หน้าแสดงหน้า
หน้าเริ่มต้น int;
//int HrefPage;
if (Page<0) Page=0-Page*10; //แบ่ง 10 หน้าหนึ่งครั้ง
StartPage=Page/10; //แบ่งครั้งละ 10 หน้า
out.print ("[รวม "+(i+1)+"หน้า]");
//out.print ("รวม"+j+"หน้าจอ");
//out.print ("แสดงหน้า "+หน้า+"");
//out.print ("StartPage="+หน้าเริ่มต้น);
ถ้า (หน้าเริ่มต้น>0)
out.print ("|<a href="connectmysql.jsp?page=-"+Integer.toString(StartPage-1)+"">10 หน้าแรก</a>");
สำหรับ (int k=0;k<10;k++)
{ int p=StartPage*10+k;
ถ้า (p>i) พัง;
ถ้า (p==เพจ)
out.print ("|th"+Integer.toString(p+1)+"หน้า");
อื่น
out.print ("|<a href="connectmysql.jsp?page="+p+"">หน้า "+Integer.toString(p+1)+"</a>");
-
ถ้า (หน้าเริ่มต้น<j)
out.print ("|<a href="connectmysql.jsp?page=-"+Integer.toString(StartPage+1)+"">10 หน้าถัดไป</a>");
ออกพิมพ์ ("|");
%> </td>
</tr>
</ตาราง>
</ร่างกาย>
-
//ปิดวัตถุชุดผลลัพธ์
sqlRst.ปิด();
//ปิดวัตถุคำสั่ง
sqlStmt.ปิด();
//ปิดการเชื่อมต่อฐานข้อมูล
sqlConn.ปิด();
%> ข้อบกพร่องในการสิ้นสุดโปรแกรม:
ไม่ได้บันทึกข้อผิดพลาด แต่นี่เป็นเพียงการอธิบาย jsp ที่อ่านฐานข้อมูล Mysql หากคุณใช้เป็นสมุดเยี่ยมชม คุณจะต้องจัดการกับข้อผิดพลาด! เรายังต้องการฝากข้อความไว้หรือไม่?