Routine d'opération de base de données JSP (utiliser Bean)
Auteur:Eve Cole
Date de mise à jour:2009-07-02 17:13:24
- Affichage des données en pages - JDBC 2.0 : ODBC
Jsp peut faire fonctionner la base de données via jdbc:odbc. Dans cet exemple, j'ai écrit la connexion à la base de données dans un JavaBean, qui peut être réutilisé.
Fichier pagetest.jsp :
<%@page contentType="text/html;charset=gb2312" %>
Test de pagination de base de données
<%
//Définit la classe ResultSet
java.sql.ResultSet d'abord ;
//Définir la source de données Odbc
Jodb.setConnStr("jdbc:odbc:jtest","","");
//Définit le pilote Jdbc
Jodb.setDbDriver("sun.jdbc.odbc.JdbcOdbcDriver");
//Exécutez l'instruction SQL et appelez la méthode d'exécution de la classe Jodb
rst=Jodb.execute("select * from gbook");
%>
<%
int startRowNum ;
int pageSize = 10 ;
premier.dernier();
int rowCount=rst.getRow();
int pageCount=(rowCount+pageSize-1)/pageSize;
int pageint;
String strPage=request.getParameter("page");
si(strPage==null)
{
intPage=1;
}
autre
{
intPage=java.lang.Integer.parseInt(strPage);
si(intPage<1)intPage=1;
if(intPage>pageCount)intPage=pageCount;
}
startRowNum=(intPage-1)*pageSize+1;
%>
Test de pagination de base de données
<%= Htool.getStr(Jodb.pageStr(intPage,pageCount,"pagetest.jsp?","en")) %>
Numéro |
Nom |
E-mail |
Laisser un message |
<%
pour(int i=0;i
rst.absolute(startRowNum+i);
si(rst.isAfterLast())
{
casser;
}
%>
<%= rst.getLong("id") %> |
<%= rst.getString("name") %> |
<%= rst.getString("email") %> |
<%= rst.getString("pnote") %> <%= rst.getRow() %> |
<%
}
%>
Le fichier Jodb.java est le suivant :
paquet zbean ;
importer java.sql.* ;
//importer le zbean.*;
classe publique Jodb
{
public String sdbdriver="sun.jdbc.odbc.JdbcOdbcDriver";
chaîne publique sConnStr ;
décompte public long ;
Uid de chaîne ;
Mot de passe de chaîne ;
Connexion conn=null ;
ResultSet rs=null ;
publicJodb()
{
essayer
{
Class.forName(sdbdriver);
}
catch(java.lang.ClassNotFoundException e)
{
System.err.println("Jodb():"+e.getMessage());
}
}
public void setDbDriver (Chaîne y)
{
pilote sdb=y;
}
public void setConnStr (Chaîne x, Chaîne z, Chaîne a)
{
sConnStr=x;
uid=z;
mot de passe=a;
}
public ResultSet exécuter (String sql)
{
rs=nul ;
essayer
{
conn=DriverManager.getConnection(sConnStr,uid,pwd);
Instruction stmt=conn.createStatement(java.sql.ResultSet.TYPE_SCROLL_SENSITIVE,java.sql.ResultSet.CONCUR_READ_ONLY);
rs=stmt.executeQuery(sql);
}
capture (SQLException ex)
{
System.err.println("Jodb.execute():"+ex.getMessage());
}
retourner rs;
}
longue mise à jour publique (String sql)
{
longue x=0 ;
essayer
{
conn=DriverManager.getConnection(sConnStr);
Instruction stmt=conn.createStatement();
x=stmt.executeUpdate(sql);
}
catch (SQLException ey)
{
System.err.println("Jodb.update():"+ey.getMessage());
}
renvoyer x ;
}
public String pageStr (int page, int pageCount, String url, String showStr)
{
//String str="Page:("+page+"/"+pageCount+") ";
Chaîne str="";
Chaîne fstr ;
Chaîne pstr ;
Chaîne nstr ;
Chaîne lstr ;
//int page=currPage;
//int pageCount=pageCt;
si(showStr=="cn")
{
fstr="Première page";
pstr="page précédente";
nstr="page suivante";
lstr="dernière page";
}
sinon if(showStr=="fr")
{
fstr="Premier";
pstr="Précédent";
nstr="Suivant";
lstr="Dernier";
}
autre
{
String[] temp_array=split(showStr,",");
si(temp_array==null)
{
str="Veuillez saisir une chaîne telle que : "Premier, Précédent, Suivant, Dernier"" ;
return str;
}
fstr=temp_array[0];
pstr=temp_array[1];
nstr=temp_array[2];
lstr=temp_array[3];
}
/*
int npage;
npgae=page+1;
page int ;
page=page-1;
si (npage>pageCount)
{npae=pageCount;}
si(ppgae<1)
{page=1 ;}
*/
si(page==1){
str=str+""+nstr+" ";
str=str+""+lstr+" ";
}
si(page==pageCount){
str=str+""+fstr+" ";
str=str+""+pstr+" ";
}
si(page>1&&page str=str+""+fstr+" ";
str=str+""+pstr+" ";
str=str+""+nstr+" ";
str=str+""+lstr+" ";
}
return str;
}
public String[] split(String str,String strIn)
{
char[] temp_array;
temp_array=str.toCharArray();
int strLength=str.length();
int strInLength=strIn.length();
int strInTimes=0;
int strIndex[]=nouveau int[strLength];
entier je = 0 ;
int ii = 0 ;
while(i<=strLength-strInLength)
{
Chaîne temp_str="";
pour(int j=i;j {
temp_str=temp_str+temp_array[j];
}
si (temp_str.equals (strIn))
{
strInTimes++;
strIndex[ii]=je;
je=i+strInLength;
ii++ ;
}
autre
{
je++;
}
}
si (strInTimes <1)
{
String[] back_str=null;
retourner back_str;
}
autre
{
String back_str[]=new String[strInTimes+1];
back_str[0]=str.substring(0,strIndex[0]);
pour(int k=1;k {
back_str[k]=str.substring(strIndex[k-1]+strInLength,strIndex[k]);
}
back_str[strInTimes]=str.substring(strIndex[strInTimes-1]+strInLength,str.length());
retourner back_str;
}
}
}