รูทีนการดำเนินการฐานข้อมูล JSP (ใช้ Bean)
ผู้เขียน:Eve Cole
เวลาอัปเดต:2009-07-02 17:13:24
- การแสดงข้อมูลในหน้า - JDBC 2.0: ODBC
Jsp สามารถดำเนินการฐานข้อมูลผ่าน jdbc:odbc ในตัวอย่างนี้ ฉันเขียนการเชื่อมต่อฐานข้อมูลใน JavaBean ซึ่งสามารถนำมาใช้ซ้ำได้
ไฟล์ pagetest.jsp:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<%@page contentType="text/html;charset=gb2312" %>
<jsp:useBean id="Htool" scope="session" class="zbean.HtmlTool"/>
<jsp:useBean id="Jodb" scope="session" class="zbean.Jodb"/>
<html>
<หัว>
<title>การทดสอบเพจฐานข้อมูล</title>
</หัว>
-
//กำหนดคลาส ResultSet
java.sql.ResultSet rst;
//ตั้งค่าแหล่งข้อมูล Odbc
Jodb.setConnStr("jdbc:odbc:jtest",""");
//ตั้งค่าไดรเวอร์ Jdbc
Jodb.setDbDriver("sun.jdbc.odbc.JdbcOdbcDriver");
//ดำเนินการคำสั่ง Sql และเรียกวิธีการดำเนินการของคลาส Jodb
rst=Jodb.execute("เลือก * จาก gbook");
-
-
int startRowNum;
int pageSize=10;
rst.สุดท้าย();
int rowCount=rst.getRow();
int pageCount=(rowCount+pageSize-1)/ขนาดหน้า;
int หน้าเพจ;
สตริง strPage=request.getParameter("หน้า");
ถ้า(strPage==null)
-
intPage=1;
-
อื่น
-
intPage=java.lang.Integer.parseInt(strPage);
ถ้า(intPage<1)intPage=1;
ถ้า(intPage>pageCount)intPage=pageCount;
-
startRowNum=(intPage-1)*pageSize+1;
-
<ร่างกาย>
<div align="center">
<ศูนย์>
<p>การทดสอบการเพจฐานข้อมูล</p>
<p><%= Htool.getStr(Jodb.pageStr(intPage,pageCount,"pagetest.jsp?", "en")) %></p>
<table border="1" width="600" bordercolorlight="#000000" cellspacing="0" cellpadding="2" bordercolordark="#FFFFFF">
<tr>
<td width="49"><font size="2">หมายเลข</font></td>
<td width="91"><font size="2">ชื่อ</font></td>
<td width="174"><font size="2">อีเมล</font></td>
<td width="250"><font size="2">ฝากข้อความ</font></td>
</tr>
-
สำหรับ(int i=0;i<pageSize;i++){
rst.สัมบูรณ์(startRowNum+i);
ถ้า(rst.isAfterLast())
-
หยุดพัก;
-
-
<tr>
<td width="49"><%= rst.getLong("id") %> </td>
<td width="91"><%= rst.getString("ชื่อ") %> </td>
<td width="174"><%= rst.getString("อีเมล") %> </td>
<td width="250"><%= rst.getString("pnote") %> <%= rst.getRow() %></td>
</tr>
-
-
-
</ตาราง>
</ศูนย์>
</div>
</ร่างกาย>
</html>
ไฟล์ Jodb.java เป็นดังนี้:
แพ็คเกจ zbean;
นำเข้า java.sql.*;
//นำเข้า zbean.*;
Jodb ชั้นเรียนสาธารณะ
-
สตริงสาธารณะ sdbdriver = "sun.jdbc.odbc.JdbcOdbcDriver";
สตริงสาธารณะ sConnStr;
การนับจำนวนสาธารณะที่ยาวนาน
สตริง uid;
สตริง pwd;
การเชื่อมต่อ conn=null;
ResultSet rs=null;
จ๊อดสาธารณะ()
-
พยายาม
-
Class.forName(sdbdriver);
-
จับ (java.lang.ClassNotFoundException จ)
-
System.err.println("Jodb():"+e.getMessage());
-
-
โมฆะสาธารณะ setDbDriver (สตริง y)
-
sdbdriver=y;
-
โมฆะสาธารณะ setConnStr (สตริง x, สตริง z, สตริง a)
-
sConnStr=x;
uid=z;
รหัสผ่าน=a;
-
สาธารณะ ResultSet ดำเนินการ (สตริง sql)
-
อาร์เอส=null;
พยายาม
-
conn=DriverManager.getConnection(sConnStr,uid,pwd);
คำสั่ง stmt=conn.createStatement(java.sql.ResultSet.TYPE_SCROLL_SENSITIVE,java.sql.ResultSet.CONCUR_READ_ONLY);
rs=stmt.executeQuery(sql);
-
จับ (เช่น SQLException)
-
System.err.println("Jodb.execute():"+ex.getMessage());
-
กลับอาร์เอส;
-
การอัปเดตแบบสาธารณะแบบยาว (String sql)
-
ยาวx=0;
พยายาม
-
conn=DriverManager.getConnection(sConnStr);
คำสั่ง stmt=conn.createStatement();
x=stmt.executeUpdate(sql);
-
จับ (SQLException ey)
-
System.err.println("Jodb.update():"+ey.getMessage());
-
กลับ x;
-
สตริงสาธารณะ pageStr (หน้า int, int pageCount, URL สตริง, สตริง showStr)
-
//String str="Page:("+page+"/"+pageCount+") ";
สตริง str="";
สตริง fstr;
สตริง pstr;
สตริง nstr;
สตริง lstr;
//int หน้า=currPage;
//int pageCount=pageCt;
ถ้า(showStr=="cn")
-
fstr="หน้าแรก";
pstr="หน้าก่อน";
nstr="หน้าถัดไป";
lstr="หน้าสุดท้าย";
-
อย่างอื่นถ้า(showStr=="en")
-
fstr = "ครั้งแรก";
pstr = "ก่อนหน้า";
nstr="ถัดไป";
lstr="สุดท้าย";
-
อื่น
-
สตริง[] temp_array=split(showStr,",");
ถ้า(temp_array==null)
-
str="กรุณาใส่ String เช่น: "First,Previous,Next,Last"";
กลับ STR;
-
fstr=temp_array[0];
pstr=temp_array[1];
nstr=temp_array[2];
lstr=temp_array[3];
-
-
int npage;
npgae=หน้า+1;
หน้า int;
หน้า=หน้า-1;
ถ้า(npage>pageCount)
{npae=pageCount;}
ถ้า(ppgae<1)
{หน้า=1;}
-
ถ้า(หน้า==1){
str=str+"<a href="+url+"page="+(page+1)+">"+nstr+"</a> ";
str=str+"<a href="+url+"page="+pageCount+">"+lstr+"</a> ";
-
ถ้า(หน้า==จำนวนหน้า){
str=str+"<a href="+url+"page=1>"+fstr+"</a> ";
str=str+"<a href="+url+"page="+(page-1)+">"+pstr+"</a> ";
-
ถ้า(หน้า>1&&หน้า<จำนวนหน้า){
str=str+"<a href="+url+"page=1>"+fstr+"</a> ";
str=str+"<a href="+url+"page="+(page-1)+">"+pstr+"</a> ";
str=str+"<a href="+url+"page="+(page+1)+">"+nstr+"</a> ";
str=str+"<a href="+url+"page="+pageCount+">"+lstr+"</a> ";
-
กลับ STR;
-
สาธารณะ สตริง [] แยก (สตริง str, สตริง strIn)
-
ถ่าน [] temp_array;
temp_array=str.toCharArray();
int strLength=str.ความยาว();
int strInLength=strIn.length();
int strInTimes=0;
int strIndex[]=ใหม่ int[strLength];
อินท์ i=0;
intii=0;
ในขณะที่ (i<=strLength-strInLength)
-
สตริง temp_str="";
สำหรับ(int j=i;j<i+strInLength;j++)
-
temp_str=temp_str+temp_array[เจ];
-
ถ้า(temp_str.เท่ากับ(strIn))
-
strInTimes++;
strIndex[ii]=i;
i=i+strInLength;
ii++;
-
อื่น
-
ฉัน++;
-
-
ถ้า(strInTimes<1)
-
สตริง[] back_str=null;
กลับ back_str;
-
อื่น
-
สตริง back_str[]=สตริงใหม่[strInTimes+1];
back_str[0]=str.substring(0,strIndex[0]);
สำหรับ(int k=1;k<strInTimes;k++)
-
back_str[k]=str.substring(strIndex[k-1]+strInLength,strIndex[k]);
-
back_str[strInTimes]=str.substring(strIndex[strInTimes-1]+strInLength,str.length());
กลับ back_str;
-
-
-