روتين تشغيل قاعدة بيانات 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" نطاق = "جلسة" فئة = "zbean.HtmlTool"/>
<jsp:useBean id = "Jodb" نطاق = "جلسة" فئة = "zbean.Jodb"/>
<أتش تي أم أل>
<الرأس>
<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=10;
rst.last();
introwCount=rst.getRow();
int pageCount=(rowCount+pageSize-1)/pageSize;
int intPage;
String strPage=request.getParameter("page");
إذا (strPage==فارغة)
{
intPage=1;
}
آخر
{
intPage=java.lang.Integer.parseInt(strPage);
if(intPage<1)intPage=1;
if(intPage>pageCount)intPage=pageCount;
}
startRowNum=(intPage-1)*pageSize+1;
%>
<الجسم>
<div محاذاة = "المركز">
<المركز>
<p>اختبار ترحيل قاعدة البيانات</p>
<p><%= Htool.getStr(Jodb.pageStr(intPage,pageCount,"pagetest.jsp?",en")) %></p>
<حدود الجدول = "1" العرض = "600" bordercolorlight = "#000000" cellpacing = "0" cellpadding = "2" bordercolordark = "#FFFFFF">
<تر>
<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>
<%
for(int i=0;i<pageSize;i++){
rst.absolute(startRowNum+i);
إذا (rst.isAfterLast())
{
استراحة؛
}
%>
<تر>
<td width="49"><%= rst.getLong("id") %> </td>
<td width="91"><%= rst.getString("name") %> </td>
<td width="174"><%= rst.getString("email") %> </td>
<td width="250"><%= rst.getString("pnote") %> <%= rst.getRow() %></td>
</tr>
<%
}
%>
</الجدول>
</مركز>
</div>
</الجسم>
</html>
ملف Jodb.java هو كما يلي:
حزمة زيبان.
استيراد java.sql.*;
//استيراد zbean.*;
جودب الطبقة العامة
{
سلسلة عامة sdbdriver = "sun.jdbc.odbc.JdbcOdbcDriver"؛
سلسلة عامة sConnStr؛
العد الطويل العام؛
معرف السلسلة؛
سلسلة الأشخاص ذوي الإعاقة؛
اتصال conn=null;
ResultSet rs=null;
publicJodb()
{
يحاول
{
Class.forName(sdbdriver);
}
قبض على (java.lang.ClassNotFoundException ه)
{
System.err.println("Jodb():"+e.getMessage());
}
}
مجموعة الفراغ العام (سلسلة y)
{
sdbdriver=y;
}
مجموعة الفراغ العامةConnStr(String x,String z,String a)
{
sConnStr=x;
uid=z;
الأشخاص ذوي الإعاقة = أ;
}
تنفيذ مجموعة النتائج العامة (سلسلة SQL)
{
rs=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());
}
العودة روبية.
}
التحديث العام الطويل (سلسلة SQL)
{
طويلة س = 0؛
يحاول
{
conn=DriverManager.getConnection(sConnStr);
البيان stmt=conn.createStatement();
x=stmt.executeUpdate(sql);
}
قبض على (SQLException إي)
{
System.err.println("Jodb.update():"+ey.getMessage());
}
العودة س؛
}
سلسلة الصفحات العامة (int page، int pageCount، String url، String showStr)
{
//String str="Page:("+page+"/"+pageCount+") ";
سلسلة سلسلة = ""؛
سلسلة فستر؛
سلسلة بيستر؛
سلسلة نستر؛
سلسلة lstr؛
//int page=currPage;
//int pageCount=pageCt;
إذا (showStr = = "cn")
{
fstr="الصفحة الأولى";
pstr="الصفحة السابقة";
nstr="الصفحة التالية";
lstr="الصفحة الأخيرة";
}
وإلا إذا (showStr = = "en")
{
fstr="الأول";
pstr="السابق";
nstr="التالي";
lstr="الأخير";
}
آخر
{
String[] temp_array=split(showStr,,");
إذا (temp_array==null)
{
str="يرجى إدخال سلسلة مثل: "First,Previous,Next,Last"";
شارع العودة؛
}
fstr=temp_array[0];
pstr=temp_array[1];
nstr=temp_array[2];
lstr=temp_array[3];
}
/*
int npage;
npgae=page+1;
صفحة int؛
صفحة = صفحة-1؛
إذا (npage>pageCount)
{npae=pageCount;}
إذا (بجاي <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&&صفحة<pageCount){
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> ";
}
شارع العودة؛
}
سلسلة عامة [] انقسام (سلسلة سلسلة، سلسلة سلسلة)
{
char[] temp_array;
temp_array=str.toCharArray();
int strLength=str. length();
int strInLength=strIn. length();
int strInTimes=0;
int strIndex[]=new int[strLength];
كثافة العمليات ط = 0؛
كثافة العمليات الثانية=0;
بينما (i<=strLength-strInLength)
{
سلسلة temp_str = ""؛
ل(int j=i;j<i+strInLength;j++)
{
temp_str=temp_str+temp_array[j];
}
إذا (temp_str.equals(strIn))
{
strInTimes++;
strIndex[ii]=i;
i=i+strInLength;
ثانيا++;
}
آخر
{
أنا++;
}
}
إذا (سترينتايمز <1)
{
String[] back_str=null;
العودة مرة أخرى_ستر؛
}
آخر
{
String back_str[]=new String[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());
العودة مرة أخرى_ستر؛
}
}
}