Rutinitas operasi database JSP (Gunakan Bean)
Penulis:Eve Cole
Waktu Pembaruan:2009-07-02 17:13:24
- Tampilan data dalam halaman - JDBC 2.0: ODBC
Jsp dapat mengoperasikan database melalui jdbc:odbc. Dalam contoh ini, saya menulis koneksi database dalam JavaBean, yang dapat digunakan kembali.
file pagetest.jsp:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transisi//EN">
<%@page contentType="text/html;charset=gb2312" %>
<jsp:useBean id="Htool" scope="sesi" class="zbean.HtmlTool"/>
<jsp:useBean id="Jodb" scope="sesi" class="zbean.Jodb"/>
<html>
<kepala>
<title>Uji paging basis data</title>
</kepala>
<%
//Definisikan kelas ResultSet
java.sql.ResultSet pertama;
//Setel sumber data Odbc
Jodb.setConnStr("jdbc:odbc:jtest","","");
//Setel driver Jdbc
Jodb.setDbDriver("sun.jdbc.odbc.JdbcOdbcDriver");
//Jalankan pernyataan Sql dan panggil metode eksekusi kelas Jodb
rst=Jodb.execute("pilih * dari gbook");
%>
<%
int startRowNum;
int Ukuranhalaman=10;
pertama.terakhir();
int jumlah baris=pertama.getRow();
int pageCount=(jumlah baris+Ukuran halaman-1)/Ukuran halaman;
int halaman int;
String strPage=request.getParameter("halaman");
jika(strHalaman==batal)
{
intHalaman=1;
}
kalau tidak
{
intPage=java.lang.Integer.parseInt(strPage);
if(intPage<1)intPage=1;
if(intPage>jumlah halaman)intPage=jumlah halaman;
}
startRowNum=(intPage-1)*Ukuranhalaman+1;
%>
<tubuh>
<div align="tengah">
<tengah>
<p>Uji paging basis data</p>
<p><%= Htool.getStr(Jodb.pageStr(intPage,pageCount,"pagetest.jsp?","en")) %></p>
<tabel border="1" width="600" bordercolorlight="#000000" Cellspacing="0" cellpadding="2" bordercolordark="#FFFFFF">
<tr>
<td width="49"><font size="2">Nomor</font></td>
<td width="91"><font size="2">Nama</font></td>
<td width="174"><font size="2">Email</font></td>
<td width="250"><font size="2">Tinggalkan pesan</font></td>
</tr>
<%
untuk(int i=0;i<Ukuran halaman;i++){
pertama.absolute(startRowNum+i);
if(pertama.isAfterLast())
{
merusak;
}
%>
<tr>
<td width="49"><%= rst.getLong("id") %> </td>
<td width="91"><%= pertama.getString("nama") %> </td>
<td width="174"><%= pertama.getString("email") %> </td>
<td width="250"><%= rst.getString("pnote") %> <%= rst.getRow() %></td>
</tr>
<%
}
%>
</tabel>
</pusat>
</div>
</tubuh>
</html>
File Jodb.java adalah sebagai berikut:
paket zbean;
impor java.sql.*;
//impor zbean.*;
Jodb kelas publik
{
String publik sdbdriver="matahari.jdbc.odbc.JdbcOdbcDriver";
String publik sConnStr;
penghitungan panjang publik;
cairan string;
tali pwd;
Sambungan koneksi=null;
Set Hasil rs=null;
publikJodb()
{
mencoba
{
Kelas.forName(sdbdriver);
}
tangkapan(java.lang.ClassNotFoundException e)
{
System.err.println("Jodb():"+e.getMessage());
}
}
kekosongan publik setDbDriver(String y)
{
sdbdriver=y;
}
kekosongan publik setConnStr(String x,String z,String a)
{
sKonnStr=x;
uid=z;
pwd=a;
}
eksekusi ResultSet publik (String sql)
{
rs=nol;
mencoba
{
samb=DriverManager.getConnection(sConnStr,uid,pwd);
Pernyataan stmt=conn.createStatement(java.sql.ResultSet.TYPE_SCROLL_SENSITIVE,java.sql.ResultSet.CONCUR_READ_ONLY);
rs=stmt.executeQuery(sql);
}
menangkap (SQLException ex)
{
System.err.println("Jodb.execute():"+ex.getMessage());
}
kembalikan rs;
}
pembaruan panjang publik (String sql)
{
panjang x=0;
mencoba
{
samb=DriverManager.getConnection(sConnStr);
Pernyataan stmt=conn.createStatement();
x=stmt.executeUpdate(sql);
}
menangkap (SQLException ey)
{
System.err.println("Jodb.update():"+ey.getMessage());
}
kembalikan x;
}
String publik pageStr(int halaman,int pageCount,String url,String showStr)
{
//String str="Halaman:("+halaman+"/"+jumlahhalaman+") ";
Tali str="";
Tali fstr;
Tali pstr;
String nstr;
String lstr;
//int halaman=Halaman saat ini;
//int jumlah halaman=halamanCt;
jika(tampilkanStr=="cn")
{
fstr="Halaman pertama";
pstr="halaman sebelumnya";
nstr="halaman berikutnya";
lstr="halaman terakhir";
}
lain jika(showStr=="en")
{
fstr="Pertama";
pstr="Sebelumnya";
nstr="Selanjutnya";
lstr="Terakhir";
}
kalau tidak
{
String[] temp_array=split(showStr,",");
jika(temp_array==null)
{
str="Silakan masukan String seperti: "Pertama, Sebelumnya, Berikutnya, Terakhir"";
kembalikan str;
}
fstr=temp_array[0];
pstr=temp_array[1];
nstr=temp_array[2];
lstr=temp_array[3];
}
/*
int halaman n;
npgae=halaman+1;
int halaman;
halaman=halaman-1;
jika(nhalaman>jumlah halaman)
{npae=jumlah halaman;}
jika(ppgae<1)
{halaman=1;}
*/
jika(halaman==1){
str=str+"<a href="+url+"page="+(halaman+1)+">"+nstr+"</a> ";
str=str+"<a href="+url+"page="+pageCount+">"+lstr+"</a> ";
}
jika(halaman==jumlah halaman){
str=str+"<a href="+url+"page=1>"+fstr+"</a> ";
str=str+"<a href="+url+"page="+(halaman-1)+">"+pstr+"</a> ";
}
if(halaman>1&&halaman<jumlahhalaman){
str=str+"<a href="+url+"page=1>"+fstr+"</a> ";
str=str+"<a href="+url+"page="+(halaman-1)+">"+pstr+"</a> ";
str=str+"<a href="+url+"page="+(halaman+1)+">"+nstr+"</a> ";
str=str+"<a href="+url+"page="+pageCount+">"+lstr+"</a> ";
}
kembalikan str;
}
String publik[] split(String str,String strIn)
{
karakter[] temp_array;
temp_array=str.toCharArray();
int strPanjang=str.panjang();
int strInLength=strIn.panjang();
int strInTimes=0;
int strIndex[]=int baru[strPanjang];
ke dalam saya=0;
ke dalam ii=0;
while(i<=strLength-strInLength)
{
String temp_str="";
untuk(int j=i;j<i+strInLength;j++)
{
temp_str=temp_str+temp_array[j];
}
if(temp_str.sama dengan(strIn))
{
strInTimes++;
strIndeks[ii]=i;
i=i+strInPanjang;
ii++;
}
kalau tidak
{
saya++;
}
}
jika(strInTimes<1)
{
String[] back_str=null;
kembali kembali_str;
}
kalau tidak
{
String back_str[]=String baru[strInTimes+1];
back_str[0]=str.substring(0,strIndex[0]);
untuk(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());
kembali kembali_str;
}
}
}