Accès base de données
Le but de cet exercice est d'interfacer une base de données Postgresql de façon à publier une partie des données qu'elle contient. En l'occurrence, il s'agira ici de créer une page Web de lancement de requêtes pour interroger notre base de données.
<html>
<head>
<title>Lancer requete database</title>
</head>
<body>
<P>
<form action="http://tuxa.sme.utc:8080/sr03xy/servlet/LanceRequete"target="right">
<input type=text size=30 name=requete>
<br>
<input type=submit>
</form>
<html>
<head>
<title>frame de lance requete</title>
</head>
<frameset cols="30%,*">
<frame src = "FormLeft.html" name = "left">
<frame src = "http://tuxa.sme.utc:8080/sr03xy/sr03/LanceRequete"name = "right">
</frameset>
</html>
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
import java.sql.*;
import java.io.*;
public class LanceRequete extends HttpServlet {
String username;//nom d'utilisateur de bd
String password;
String url;
String requete ="";
String nom;
int nbre;
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws IOException, ServletException
{
response.setContentType("text/html");
PrintWriter out = response.getWriter();
out.println("<html>");
out.println("<head>");
out.println("<title>Lance requete!</title>");
out.println("</head>");
out.println("<body>");
// ---- configure START
username = "lo17xxx";
password = "dblo17";
// The URL that will connect to TECFA's MySQL server
// Syntax: jdbc:TYPE:machine:port/DB_NAME
url = "jdbc:postgresql://tuxa.sme.utc/dblo17";
// ---- configure END
String requete;
requete = request.getParameter("requete");
if (requete != null) {
// INSTALL/load the Driver (Vendor specific Code)
try {
Class.forName("org.postgresql.Driver");//le pilote de connexion entre jsp et postgresql
} catch(java.lang.ClassNotFoundException e) {
System.err.print("ClassNotFoundException: ");
System.err.println(e.getMessage());
}
try {
Connection con;
Statement stmt;
// Establish Connection to the database at URL
// with usename and password
...(à remplir) //initialisation de l'instance de connexion
...(à remplir) //création d'une requête
// Send the query and bind to the result set
...(à remplir) //le resultat de la requête en form de table
...(à remplir) //récuparation des noms d'attribut du resultat rs
...(à remplir, indice un boucle) //l'affichage du resultat de la requête
out.println("</body>");
out.println("</html>");
// Close resources
stmt.close();
con.close();
}
// print out decent erreur messages
catch(SQLException ex) {
System.err.println("==> SQLException: ");
while (ex != null) {
System.out.println("Message: " + ex.getMessage ());
System.out.println("SQLState: " + ex.getSQLState ());
System.out.println("ErrorCode: " + ex.getErrorCode ());
ex = ex.getNextException();
System.out.println("");
}
}
}
}
}