- 1 - 841059676
Dépnt Info, I.U.T. d’Orsay Feuille 8 novembre 2003
2ième année
Client Serveur pour Intranet
Liaison avec des données
On dispose de la base de données BdHtml97.mdb , construite avec Access; le fichier se trouve dans
le répertoire '…/tp/FI2/csi_orientation/bases'.
I.- On crée, avec Jbuilder, une application avec interface utilisateur qui visualise une table
1.- Mise en place de la source de données ODBC
Cliquer sur Démarrer/Panneau de configuration/Outils d’administration/Sources de données ODBC.
Ajouter un DSN utilisateur AliasBase avec le pilote Microsoft Access Driver en sélectionnant la base
de données BdHtml97.mdb.
2.- Créer un nouveau projet tp_bd dans le répertoire tpcsi_bd de titre "Liaison avec les BD".
N'oubliez pas de modifier les valeurs par défaut des répertoires 'Source' et 'Sortie' prsentées
dans la boîte de dialogue de configuation 'Projet/Propriétés'.
3.- Dans ce projet, créer une application en précisant l'option suivante 'Générer les commentaires
en en-tête'. et en mettant comme nom de classe 'TestVoirTable', comme titre 'Etude de liaison
avec les BD' et comme classe 'VoirTable'.
Passer en mode conception.
4.- Création des éléments non visuels, liés à la base
Dans le cadre de l'application, créer un objet Database1 de type Database au moyen de
l'onglet Data Express.
Comment est modifiée la sous-arborescence Interface utilisateur et celle Accès aux données?
Cliquer dans la propriété connection et remplacer 'aucun'. Pour cela, choisir le pilote
JdbcOdbcDriver et l’URL jdbc :odbc :odbcAliasBase. Avant de valider, tester la connexion. Si
Succès, OK, sinon, … trouver votre erreur.
Créer un queryDataSet queryDataSet1 à partir de l'onglet Data Express.
Dans la propriété query de queryDataSet1, associer la Database et en utilisant le constructeur
SQL, construire une requête permettant d'extraire les noms, balises et valeurs de la table
Interface Utilisateur
Accès aux données
- 2 - 841059676
Attributs classés par ordre alphabétique et balise = A. Tester la requête. Si succès, OK,
sinon trouver l'erreur.
5.- Création des éléments d’interface utilisateur
A jouter, en mode conception toujours, trois composants d’interface utilisateur dans la fenêtre ;
ces composants sont pris dans l’onglet ‘dbSwing’ :
Au nord, une barre de navigation (JdbNavToolBar), nom de variable : barreNavig ;
Au sud, une barre d’état (JdbStatusLabel), nom de variable : barreEtat ;
Au centre, une ‘grille’ avec barres de défilement (TableScrollPane contenant un
objet JdbTable)
Relier ces composants à la requête queryDataset1, par la propriété dataset.
Donner l'état des sous-arborescences Interface Utilisateur et Accès aux données.
Visualiser par un dessin les connexions entre les différents éléments et récapituler les différentes
propriétés que vous avez modifiées.
D’après le source, quelles sont les méthodes utilisées pour accéder à la base et pour accéder aux
données ?
Interface Utilisateur
Accès aux données
- 3 - 841059676
II.- On réalise une interrogation analogue sur la même base, sans interface utilisateur.
1.- Ecrire une application qui reçoit par la ligne de commande un nom de balise Html, puis interroge
la base pour afficher les attributs de cette balise et les commentaires associés. Il faudra établir la
connexion à la base en passant par Odbc, puis envoyer une requête, afficher les lignes du
résultats et fermer la connexion.
2. Ecrire une deuxième version qui place les résultats dans un fichier structuré comme un document
Html, que l'on pourra visualiser avec un navigateur.
Il est possible que, suivant le nom de balise fourni, il n'y ait aucun attribut.
Annexe1: exemple de source Java d'accès
/** AffTable.java : exemple d'accès à une base, par odbc
Table Etudiant : num nom adr
100 Abel Paris
110 Adam Orsay
120 Eve Orsay
*/
import java.sql.*;
import sun.jdbc.odbc.JdbcOdbcDriver;
public class AffTable {
public static void main(String[] args) {
try {
// Charger le pilote jdbc-odbc, et se connecter
Class pil = Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection con = DriverManager.getConnection (
"jdbc:odbc:Etudiant", "U", "mdp");
// Création d'un objet 'requête', et envoie
Statement req = con.createStatement();
ResultSet res = req.executeQuery
("Select * From Etudiant where nom = ’"+ args [0] + "’; ");
// Afficher le résultat
int n;
while( res.next()) {
// afficher les trois valeurs d'une ligne (n = 1...3)
for(n = 1 ; n <= 3; n ++)
System.out.print(res.getString(n)+'\t');
System.out.println("");
}
con.close();
// Fermer la connexion
}
catch(Exception e) { e.printStackTrace(); }
}
} // fin class AffTable
Annexe2: exemple de document Html
Voici document créé quand on donne 'A' comme nom de balise. Le texte souligné est extrait du
résultat de la requête.
Votre programme java doit donc créer un fichier, y écrire les lignes 1 à 6; puis extraire les
résultats de la requête pour confectionner les lignes 7 à 9, et enfin terminer par les dernières
lignes.
- 4 - 841059676
1
2
3
4
5
6
7
8
9
10
11
12
<html>
<head>
<title> Attributs d'une balise </title>
</head>
<body>
<h2> Attributs de la balise 'A' </h2>
<br>name : définit la position comme une ancre
<br>href : lien hypertexte
<br>target : indique le cadre doit s'afficher le lien
hypertexte
</body>
</html>
Annexe3: exemple de création d'un fichier
Un fichier de nom tmp, donc situé dans le
pertoire courant, est créé ci-contre; on
utilise ensuite la classe PrintStream pour
écrire dans ce fichier.
L'objet System.out est lui aussi de cette
classe; les méthodes habituellement utilisées
pour afficher à l'écran sont aussi disponibles
pour écrire dans le fichier.
Cependant, pour une opération sur fichier il
ne faut pas oublier de fermer le fichier.
// Ouverture d'un fichier
FileOutputStream fos =
new FileOutputStream("tmp");
// Un flot de sortie sur ce fichier
PrintStream surF = new PrintStream(fos);
surF.println("Premiere ligne");
surF.print("deuxieme ligne\n");
surF.print("<br>" + 123.33);
surF.flush();
surF.close();
}
- 5 - 841059676
Liaison avec des données
Eléments de réponse
On dispose de la base de données BdHtml97.mdb , construite avec Access; le fichier se trouve dans
le répertoire '…/tp/FI2/csi_orientation/bases'.
I.- On veut créer une application en visualisant une partie sous Jbuilder avec interface utilisateur
1.- Mise en place de la source de données ODBC
Cliquer sur Démarrer/Panneau de configuration/Outils d’administration/Sources de données ODBC.
Ajouter un DSN utilisateur AliasBase avec le pilote Microsoft Access Driver en sélectionnant la base
de données BdHtml97.mdb.
2.- Créer un nouveau projet tp_bd dans le répertoire tpcsi_bd de titre "Liaison avec les BD".
N'oubliez pas de mettre à jour les informations Source et Sortie dans Projet/Propriétés.
3.- Dans ce projet, créer une application en précisant les options suivantes. Cliquer sur l'option
Générer les commentaires en en-tête. Mettez comme nom de classe TestVoirTable, comme titre
Etude de liaison avec les BD et comme classe VoirTable
Passer en mode conception.
4.- Création des différents éléments liés à la base
Dans le cadre de l'application, créer un objet Database1 de type Database au moyen de
l'onglet Data Express.
Comment est modifiée la sous-arborescence Interface utilisateur et celle Accès aux données?
Cliquer dans la propriété connection et remplacer 'aucun'. Pour cela, choisir le pilote
JdbcOdbcDriver et l’URL jdbc :odbc :odbcAliasBase. Avant de valider, tester la connexion. Si
Succès, OK, sinon, … trouver votre erreur.
Créer un queryDataSet queryDataSet1 à partir de l'onglet Data Express.
Dans la propriété query de queryDataSet1, associer la Database et en utilisant le constructeur
SQL, construire une requête permettant d'extraire les noms, balises et valeurs de la table
Attributs classés par ordre alphabétique et balise = A. Tester la requête. Si succès, OK,
sinon trouver l'erreur.
Donner l'état des sous-arborescence Interface Utilisateur et Accès aux données.
Visualiser par un dessin les connexions entre les différents éléments et récapituler les différentes
propriétés que vous avez modifiées.
Interface Utilisateur
Accès aux données
this
ContentPane (BorderLayout)
BorderLayout
Database1
QueryDataSet1
1 / 7 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 !