Jsp Tomcat cours Atelier introduction
- 1 -
CONNEXION A UNE BASE DE DONNEES
Objectif.
Créez un projet permettant le développement d’une application cliente d’une base de données Oracle. Pour
utiliser cette base, vous devez créer une source de données (lien ODBC) nommée ODBC_COMMERCIAL
(panneau de configuration, outils d’administration, ODBC) puis le tester. Le lien ODBC_COMMERCIAL est
pris en compte par la clacce jdbc qui représente l’interface java avec odbc.
Dans un premier temps, nous utiliserons l’architecture Vue de Page qui mélange dans une page jsp du code html
et du code java. Cette approche est très facile à comprendre mais elle ne prend pas en charge l’approche métier
qui sera vue avec l’architecture vue de page avec bean.
Schéma relationnel
Objectif.
Recherchez puis listez des données d’une base de données.
Notions étudiées.
Utilisez les classes java.sql.Connection conn ; java.sql.Statement stmt; java.sql.ResultSet results;
java.sql.ResultSetMetaData metaData;
Le résultat à obtenir.
Application permettant de lister les articles de la table ARTICLE.
Etape 1 : se connecter à la base de données Oracle
Nous voulons obtenir la liste des familles d’articles et la présenter dans une zone de liste.
Problème Solution
Se connecter à la base Oracle Utiliser un objet java.connection.
Créez la page html index.html depuis le bloc note :
Copiez cette page dans votre répertoire virtuel.
<HTML>
Jsp Tomcat cours Atelier introduction
- 2 -
<form method=POST action="src/classconnexion.jsp">
<H1>Bienvenue chez Mobilier de Bureau </H1>
<p> Utilisez le bouton pour visualiser les articles</p>
<input type=submit value=Requête SQL>
</HTML>
Créez la page classconnexion.jsp dans un sous répertoire src :
<%@ page language="java" import="java.sql.*" %>
<html>
<form method=POST action="../index.html">
<head><title>JSP Page</title></head>
<body>
<p> Voici la liste d'articles de votre requête </p>
<br>
<%-- <jsp:useBean id="beanInstanceName" scope="session"
class="package.class" /> --%>
<%-- <jsp:getProperty name="beanInstanceName" property="propertyName" /> -
-%>
<%!
java.sql.Connection conn;
java.sql.Statement stmt;
java.sql.ResultSet results;
java.sql.ResultSetMetaData metaData;
int numCols;
String ligne;
%>
<%
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
/**
On définit une connexion à travers JDBC et ODBC
*/
conn =
java.sql.DriverManager.getConnection("jdbc:odbc:odbc_commercial",«scott »,
«tiger »);
stmt = conn.createStatement();
/**
On récupère les données dans un recordset
*/
results = stmt.executeQuery("Select * from clientel");
metaData = results.getMetaData();
numCols = metaData.getColumnCount();
%>
<%
/**
Récupération de l'environnement de la connexion
Connection is: <%= conn.toString() <br>
statement is: <%= stmt.toString() <br>
*/
%>
<%
while (results.next())
{
for(int i=1 ; i <= numCols; i++)
{
ligne = results.getString(i) + " ";
%>
/**
On affiche la ligne
*/
<%= ligne %>
Jsp Tomcat cours Atelier introduction
- 3 -
<% }
results.close();
conn.close();
%>
<br>
<% } %>
<br>
<br>
</body>
<input type=submit value=Retour>
</html>
Testez en appelant cette page depuis un navigateur : //Localhost:8080/votre
repertoire/index.html.
Retenir :
- on crée un objet connexion com
- on crée un objet de type recordset results
Un travail plus complexe : Les articles d’une commande
Le résultat à obtenir.
Application permettant de lister les articles d’une commande choisie dans une liste déroulante
Etape 1 Placer les numéros de commande et les dates de commande dans
une zone de liste
Créez la page listederoulante.JSP
<%@page language="java" import="java.sql.*"%>
<HTML>
<BODY>
<H1>Bienvenue chez Mobilier de Bureau </H1>
Jsp Tomcat cours Atelier introduction
- 4 -
<p>Veuillez choisir votre commande</p>
<FORM METHOD="POST" ACTION="famille.jsp" >
<SELECT NAME="commande" SIZE = "4" >
<%!
/**
Déclaration des variables
*/
java.sql.Connection conn;
java.sql.Statement stmt;
java.sql.ResultSet results;
java.sql.ResultSetMetaData metaData;
String ligne;
String wnocd;
%>
<%
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
/**
On définit une connexion à travers JDBC et ODBC
*/
conn =
java.sql.DriverManager.getConnection("jdbc:odbc:odbc_commercial",«scott »,
«tiger »);
stmt = conn.createStatement();
/**
On récupère les données dans un recordset
*/
results = stmt.executeQuery("SELECT NO_COMMAND FROM COMMANDES");
while (results.next())
{
// on récupère le deuxième paramètre de la requête
wnocd = results.getString(1);
%>
<option value=<%=wnocd%> > <%=wnocd%> </option>
<%
};
results.close();
conn.close();
%>
</SELECT>
<INPUT TYPE="SUBMIT" value="Rechercher les articles">
</FORM>
</BODY>
</HTML>
Copiez cette page dans votre répertoire virtuel.
Testez en appelant cette page depuis un navigateur : //Localhost:8080/chris/src
/listederoulante.JSP
Jsp Tomcat cours Atelier introduction
- 5 -
Etape 2 : Transmettre le numéro de commande à la page famille.jsp
Problème
Solution
Notre page listederoulante a un petit défaut. Que transmet-elle
dans son formulaire à la page famille.JSP. Réponse : le
numéro de commande. Hors nous allons avoir besoin du
numéro de cette commande.
Donnez le numéro de commande comme valeur à chaque
option de la zone de liste.
D’où l’écriture :
<option value=<%=wnocd%><%=wnocd%>
</option>
Etape 3 : Construire la page famille.jsp
Solution
Notre page famille doit afficher les données dans un tableau,
elle utilise une requête paramétrée. La valeur du p aramètre
vient de la page listederoulante.jsp
Code de la page famille.jsp
<%@page language="java" import="java.sql.*"%>
<HTML>
<BODY>
<H1>Bienvenue chez Mobilier de Bureau <BR>
Commande : <%=request.getParameter("commande") %>
</H1>
<TABLE border=1 cellPadding=1 cellSpacing=1 width="75%">
<TR>
<TD align=middle>N° Article</TD>
<TD align=middle>Désignation</TD>
<TD align=middle>Qte commandée</TD>
</TR>
<%!
java.sql.Connection conn;
java.sql.Statement stmt;
java.sql.ResultSet results;
java.sql.ResultSetMetaData metaData;
String mysql;
String wnoart ;
String wlibart;
int wqte;
%>
<%
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
/**
On définit une connexion à travers JDBC et ODBC
*/
conn =
java.sql.DriverManager.getConnection("jdbc:odbc:odbc_commercial",«scott »,
«tiger »);
stmt = conn.createStatement();
/** On définit une requête sql paramétée
*/
mysql= "SELECT ARTICLES.NO_ARTICLE, LIB_ARTICLE, QTE_CDEE";
mysql=mysql + " FROM ARTICLES, DETAIL_CDE, COMMANDES";
mysql=mysql + " WHERE COMMANDES.NO_COMMAND = '" ;
mysql=mysql + request.getParameter("commande") + "'" ;
mysql=mysql + " AND COMMANDES.NO_COMMAND = DETAIL_CDE.NO_COMMAND";
mysql=mysql + " AND DETAIL_CDE.NO_ARTICLE = ARTICLES.NO_ARTICLE" ;
1 / 19 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !