Comment utiliser JSP+MySQL pour créer un livre d'or (2)
Auteur:Eve Cole
Date de mise à jour:2009-07-02 17:13:19
Une fois que vous avez la base de données, vous devez lire le message pour le fonctionnement de la base de données !
Les principaux programmes d'affichage des messages sont répertoriés ci-dessous :
<%@page import="java.sql.*"
import="java.util.*"
import="java.io.*"
contentType="text/html; charset=gb2312"
%>
<html>
<tête>
<title>Livre d'or de l'espace libre Pinghui</title>
<meta name="GENERATOR" content="Microsoft FrontPage 4.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<style type="text/css"><!--
corps {taille de police : 9 pt}
td { taille de police : 9pt} -->
</style>
</tête>
<corps>
<p align="center"><u><font size="5" face="华文新伟">Livre d'or de l'espace libre Pinghui</font></u></p>
<table width="75%" border="1" bgcolor="#FFCCFF" bordercolorlight="#0000FF"
bordercolordark="#6666FF" cellpadding="0" cellpacing="0" align="center">
<tr>
<td colspan="5" hauteur="202">
<%//Ce qui suit gère la demande de pagination de l'utilisateur
Chaîne chaîne_page ;
int Page,RecoderPage,RecoderRow ;
try{string_page=request.getParameter("page");
}catch (NullPointerException e){string_page="";}
essayez{Page=Integer.parseInt(string_page);
}catch(NumberFormatException e)
{Page=0 ;
}
java.sql.Connection sqlConn; //Objet de connexion à la base de données
java.sql.Statement sqlStmt; //Objet Déclaration
java.sql.ResultSet sqlRst; //Objet d'ensemble de résultats
//Enregistrer l'objet pilote JDBC
Class.forName ("org.gjt.mm.mysql.Driver").newInstance ();
//Se connecter à la base de données
sqlConn= java.sql.DriverManager.getConnection ("jdbc:mysql://localhost/p","test","");
//Créer un objet d'instruction
sqlStmt=sqlConn.createStatement
(java.sql.ResultSet.TYPE_SCROLL_INSENSITIVE,java.sql.ResultSet.CONCUR_READ_ONLY);
//Exécuter l'instruction SQL
String sqlQuery="sélectionnez le nombre (*) à partir du commentaire" ;
sqlRst=sqlStmt.executeQuery (sqlQuery);
sqlRst.next();
int count=sqlRst.getInt(1); //Obtenir le nombre total d'enregistrements de messages
si (Page>=0)RecoderPage=Page;//page de processus
sinon RecorderPage=0-Page*10 ;
if (RecoderPage>count/15){ RecoderPage=count/15; Page=RecoderPage }//La page est hors limites;
RecoderRow=RecoderPage*15; //Obtenir le numéro d'enregistrement du message à afficher
sqlQuery="select * from comment order by userid desc limit "+RecoderRow+",15;" //Lire 15 enregistrements à la fois
sqlRst=sqlStmt.executeQuery (sqlQuery);
%> Il y a <%=count%> messages au total
<% while (sqlRst.next()) //Afficher les messages
{ //Obtenir l'enregistrement suivant %> <%=sqlRst.getString("userid")%>
<table width="95%" border="1" cellpacing="1" cellpadding="1"
bordercolorlight="#6666FF" bordercolordark="#6666FF" bgcolor="#CCCCFF" align="center">
<tr>
<td width="25%">Pseudo : <%=sqlRst.getString("username")%></td>
<td width="25%">Sexe : <%=sqlRst.getString("sex")%></td>
<td colspan="2" width="50%">Adresse : <%=sqlRst.getString("address") %></td>
</tr>
<tr>
<td width="25%">Téléphone : <%=sqlRst.getString("telnumber")%></td>
<td width="25%">Code postal :<%=sqlRst.getString("post")%></td>
<td width="25%">OICQ :<%=sqlRst.getString("oicq")%></td>
<td width="25%">ICQ :<%=sqlRst.getString("icq")%></td>
</tr>
<tr>
<td colspan="2" width="50%">E-mail :
<a href="mailto:<%=sqlRst.getString("email")%>" title="Ecrire à la personne qui a laissé le message"><%=sqlRst.getString("email")%></a ></td>
<td colspan="2" width="50%">URL :
<a href target="_blank"></a><a href="mailto:<%=sqlRst.getString("url")%>" title="Écrire à la personne qui a laissé le message">
<%=sqlRst.getString("urltitle")%></a></td>
</tr>
<tr>
<td colspan="4"><font style="line-height: 150%;color: green">
Message :<%=sqlRst.getString("commentaire")%><br>
-<%=sqlRst.getString("time") %>
(à partir de <%=sqlRst.getString("ip") %>)</font></td>
</tr>
</table>
<hr align="center" noshade size="2" width="95%">
<% } %> <%
//Page les messages ci-dessous
int i=count/15; //Page totale, chaque page affiche 15 enregistrements
int j=i/10; //Grande page totale, 10 pages ne sont pas divisées en une seule grande page
//Page affichée
int Page de démarrage ;
//int HrefPage;
if (Page<0) Page=0-Page*10; //Diviser 10 pages une fois
StartPage=Page/10; //Diviser 10 pages à la fois
out.print ("[Total "+(i+1)+"pages]");
//out.print ("total"+j+"écran");
//out.print ("Afficher la page "+Page+"");
//out.print ("StartPage="+StartPage);
si (Page de démarrage>0)
out.print ("|<a href="connectmysql.jsp?page=-"+Integer.toString(StartPage-1)+"">10 premières pages</a>");
pour (int k=0;k<10;k++)
{ int p=Page de démarrage*10+k;
si (p>i) pause ;
si (p==Page)
out.print ("|th"+Integer.toString(p+1)+"page");
autre
out.print ("|<a href="connectmysql.jsp?page="+p+"">Page "+Integer.toString(p+1)+"</a>");
}
si (Page de démarrage <j)
out.print ("|<a href="connectmysql.jsp?page=-"+Integer.toString(StartPage+1)+"">10 pages suivantes</a>");
out.print ("|");
%> </td>
</tr>
</table>
</corps>
<%
//Ferme l'objet du jeu de résultats
sqlRst.close();
//Fermer l'objet d'instruction
sqlStmt.close();
//Fermer la connexion à la base de données
sqlConn.close();
%> Lacunes dans le programme de fin de programme :
Les erreurs ne sont pas capturées, mais c'est juste pour expliquer la lecture par jsp de la base de données Mysql. Si vous l'utilisez comme livre d'or, vous devez gérer les erreurs ! Voulons-nous toujours laisser un message ?