Rutina de operación de base de datos JSP (Usar Bean)
Autor:Eve Cole
Fecha de actualización:2009-07-02 17:13:24
- Visualización de datos en páginas - JDBC 2.0: ODBC
Jsp puede operar la base de datos a través de jdbc:odbc. En este ejemplo, escribí la conexión de la base de datos en un JavaBean, que se puede reutilizar.
Archivo pagetest.jsp:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transicional//ES">
<%@page contentType="text/html;charset=gb2312" %>
<jsp:useBean id="Htool" alcance="sesión" clase="zbean.HtmlTool"/>
<jsp:useBean id="Jodb" alcance="sesión" clase="zbean.Jodb"/>
<html>
<cabeza>
<title>Prueba de paginación de base de datos</title>
</cabeza>
<%
//Definir la clase ResultSet
java.sql.ResultSet primero;
//Establecer fuente de datos Odbc
Jodb.setConnStr("jdbc:odbc:jtest","","");
//Establece el controlador Jdbc
Jodb.setDbDriver("sun.jdbc.odbc.JdbcOdbcDriver");
//Ejecuta la instrucción Sql y llama al método de ejecución de la clase Jodb
rst=Jodb.execute("seleccione * de gbook");
%>
<%
int número de fila inicial;
int tamaño de página = 10;
primero.último();
int rowCount=primero.getRow();
int pageCount=(rowCount+pageSize-1)/pageSize;
int páginaint;
String strPage=request.getParameter("página");
si(strPage==nulo)
{
intPágina=1;
}
demás
{
intPage=java.lang.Integer.parseInt(strPage);
if(intPágina<1)intPágina=1;
if(intPage>pageCount)intPage=pageCount;
}
startRowNum=(intPage-1)*pageSize+1;
%>
<cuerpo>
<div align="centro">
<centro>
<p>Prueba de paginación de base de datos</p>
<p><%= Htool.getStr(Jodb.pageStr(intPage,pageCount,"pagetest.jsp?","en")) %></p>
<table border="1" width="600" bordercolorlight="#000000" cellspace="0" cellpadding="2" bordercolordark="#FFFFFF">
<tr>
<td width="49"><font size="2">Número</font></td>
<td width="91"><font size="2">Nombre</font></td>
<td width="174"><font size="2">Correo electrónico</font></td>
<td width="250"><font size="2">Deja un mensaje</font></td>
</tr>
<%
para(int i=0;i<tamaño de página;i++){
primero.absoluto(startRowNum+i);
si(primero.isAfterLast())
{
romper;
}
%>
<tr>
<td ancho="49"><%= rst.getLong("id") %> </td>
<td width="91"><%= rst.getString("nombre") %> </td>
<td width="174"><%= rst.getString("correo electrónico") %> </td>
<td width="250"><%= rst.getString("pnote") %> <%= rst.getRow() %></td>
</tr>
<%
}
%>
</tabla>
</centro>
</div>
</cuerpo>
</html>
El archivo Jodb.java es el siguiente:
paquete zbean;
importar java.sql.*;
//importar zbean.*;
clase pública jodb
{
cadena pública sdbdriver="sun.jdbc.odbc.JdbcOdbcDriver";
cadena pública sConnStr;
cuenta larga pública;
fluido de cadena;
Contraseña de cadena;
Conexión de conexión = nulo;
Conjunto de resultados rs=null;
públicoJodb()
{
intentar
{
Class.forName(sdbdriver);
}
captura (java.lang.ClassNotFoundException e)
{
System.err.println("Jodb():"+e.getMessage());
}
}
setDbDriver vacío público (cadena y)
{
sdbdriver=y;
}
setConnStr vacío público (Cadena x, Cadena z, Cadena a)
{
sConnStr=x;
uid=z;
contraseña=a;
}
ejecución pública de ResultSet (cadena sql)
{
rs=nulo;
intentar
{
conn=DriverManager.getConnection(sConnStr,uid,pwd);
Declaración stmt=conn.createStatement(java.sql.ResultSet.TYPE_SCROLL_SENSITIVE,java.sql.ResultSet.CONCUR_READ_ONLY);
rs=stmt.executeQuery(sql);
}
captura (SQLException ex)
{
System.err.println("Jodb.execute():"+ex.getMessage());
}
devolver rs;
}
actualización pública larga (String sql)
{
largo x=0;
intentar
{
conn=DriverManager.getConnection(sConnStr);
Declaración stmt=conn.createStatement();
x=stmt.executeUpdate(sql);
}
captura (SQLException ey)
{
System.err.println("Jodb.update():"+ey.getMessage());
}
devolver x;
}
cadena pública pageStr (int página, int pageCount, cadena url, cadena showStr)
{
//String str="Página:("+página+"/"+páginaCount+") ";
Cadena cadena="";
Cadena fstr;
Cadena pstr;
Cadena nstr;
Lista de cadenas;
//int página=currPágina;
//int pageCount=páginaCt;
si(mostrarStr=="cn")
{
fstr="Primera página";
pstr="página anterior";
nstr="página siguiente";
lstr="última página";
}
de lo contrario si(showStr=="es")
{
fstr="Primero";
pstr="Anterior";
nstr="Siguiente";
lstr="Último";
}
demás
{
Cadena[] temp_array=split(showStr,",");
si(temp_array==nulo)
{
str="Por favor, introduzca una cadena como: "Primero,Anterior,Siguiente,Último"";
devolver cadena;
}
fstr=temp_array[0];
pstr=temp_array[1];
nstr=temp_array[2];
lstr=temp_array[3];
}
/*
int npágina;
npgae=página+1;
página int;
página=página-1;
si(npágina>númerodepáginas)
{npae=númerodepáginas;}
si(ppgae<1)
{página=1;}
*/
si(página==1){
str=str+"<a href="+url+"page="+(página+1)+">"+nstr+"</a> ";
str=str+"<a href="+url+"page="+pageCount+">"+lstr+"</a> ";
}
si (página == número de páginas) {
str=str+"<a href="+url+"page=1>"+fstr+"</a> ";
str=str+"<a href="+url+"page="+(página-1)+">"+pstr+"</a> ";
}
if(página>1&&página<pageCount){
str=str+"<a href="+url+"page=1>"+fstr+"</a> ";
str=str+"<a href="+url+"page="+(página-1)+">"+pstr+"</a> ";
str=str+"<a href="+url+"page="+(página+1)+">"+nstr+"</a> ";
str=str+"<a href="+url+"page="+pageCount+">"+lstr+"</a> ";
}
devolver cadena;
}
cadena pública [] dividida (cadena cadena, cadena cadena en)
{
char[] temp_array;
temp_array=str.toCharArray();
int strLength=str.length();
int strInLength=strIn.length();
int strInTimes=0;
int strIndex[]=nuevo int[strLength];
int i=0;
intii=0;
mientras(i<=cadenaLongitud-cadenaLongitud)
{
Cadena temp_str="";
para(int j=i;j<i+strInLength;j++)
{
temp_str=temp_str+temp_array[j];
}
si(temp_str.equals(strIn))
{
strInTimes++;
strIndex[ii]=i;
i=i+strInLongitud;
II++;
}
demás
{
yo ++;
}
}
si(cadenaVeces<1)
{
Cadena[] back_str=null;
devolver back_str;
}
demás
{
Cadena back_str[]=nueva cadena[strInTimes+1];
back_str[0]=str.substring(0,strIndex[0]);
para(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());
devolver back_str;
}
}
}