Bases de Données / Databases

Site Web de l'équipe BD du LIP6 / LIP6 DB Web Site

Outils pour utilisateurs

Outils du site


site:enseignement:licence:3i009:tme_jdbc_h2

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
site:enseignement:licence:3i009:tme_jdbc_h2 [04/12/2020 14:53] aminesite:enseignement:licence:3i009:tme_jdbc_h2 [10/12/2020 12:19] (Version actuelle) – [Exercice 1 : Requêtes fixes] amine
Ligne 2: Ligne 2:
  
 ====== TME 8 JDBC (H2) ====== ====== TME 8 JDBC (H2) ======
-**En construction** 
  
 Consulter la brève introduction à JDBC vue en cours {{:site:enseignement:licence:3i009:i3009coursjdbc.pdf|pdf}} Consulter la brève introduction à JDBC vue en cours {{:site:enseignement:licence:3i009:i3009coursjdbc.pdf|pdf}}
Ligne 16: Ligne 15:
  
   * **JOUEUR**(__NUJOUEUR__, NOM, PRENOM, ANNAISS, NATIONALITE)   * **JOUEUR**(__NUJOUEUR__, NOM, PRENOM, ANNAISS, NATIONALITE)
-  * **GAIN**(__NUJOUEUR, LIEUTOURNOI, ANNEE__, PRIME, SPONSOR)+  * **GAIN**(__NUJOUEUR, LIEUTOURNOI, ANNEE__, PRIME, NOMSPONSOR)
   * **RENCONTRE**(NUGAGNANT, __NUPERDANT, LIEUTOURNOI, ANNEE__)   * **RENCONTRE**(NUGAGNANT, __NUPERDANT, LIEUTOURNOI, ANNEE__)
  
Ligne 29: Ligne 28:
  
 La réalisation de ce TME nécessite des connaissances de base en compilation de programmes Java.  La réalisation de ce TME nécessite des connaissances de base en compilation de programmes Java. 
 +
  
 Pour compiler un fichier source //Fichier.java// en utilisant une librairie externe //lib.jar// taper Pour compiler un fichier source //Fichier.java// en utilisant une librairie externe //lib.jar// taper
-<code> javac -cp lib.jar: Fichier.java </code> + 
-Cette commande  va créer un binaire appelé //Fichier.class//+Linux et Mac: 
 +<code> javac -cp .:lib.jar Fichier.java </code> 
 + 
 +Windows: 
 +<code> javac -cp .;lib.jar Fichier.java </code> 
 + 
 +<showif isloggedin> 
 +<fc #008000>Attention:</fc> 
 +</showif> 
 + 
 + 
 +Cette commande  va créer un binaire appelé //Fichier.class// (et //MaClasse.java//)
 Pour exécuter le programme taper Pour exécuter le programme taper
-<code> java -cp lib.jar: Fichier </code>+ 
 +Linux et Mac: 
 +<code> java -cp .:lib.jar Fichier </code> 
 + 
 +Windows: 
 +<code> java -cp .;lib.jar Fichier </code>
  
 **Remarques** **Remarques**
  
-  * Afin d'éviter les erreurs de compilation dues à l'utilisation de caractères accentués dans les fichiers sources, compiler ces derniers en tapant <code>javac -encoding UTF-8 Fichier.java</code>+  * Afin d'éviter les erreurs de compilation dues à l'utilisation de caractères accentués dans les fichiers sources, compiler ces derniers en tapant  
 +<code>javac -encoding UTF-8 Fichier.java</code>
   * Les étudiants souhaitant utiliser l'IDE Eclipse peuvent se réferer à la rubrique **Configuration d'Eclipse** à la fin de la page. A défaut, utiliser un éditeur texte qui reconnait la syntaxe Java (tel que emacs).   * Les étudiants souhaitant utiliser l'IDE Eclipse peuvent se réferer à la rubrique **Configuration d'Eclipse** à la fin de la page. A défaut, utiliser un éditeur texte qui reconnait la syntaxe Java (tel que emacs).
  
Ligne 45: Ligne 62:
 */ */
  
-Télécharger et l'archive contenant les sources en tapant+Télécharger l'archive {{ :site:enseignement:licence:3i009:tmejdbc-h2.zip |TMEJDBC-H2}} contenant les sources puis décompresser et extraire son contenu avec la commande zip ou tar.
  
 +AVec tar:
 <code bash> <code bash>
-tar xzf TMEJDBC-H2.tgz +tar xzf TMEJDBC-H2.zip 
 cd TMEJDBC-H2 cd TMEJDBC-H2
 </code> </code>
 +
 +L'archive contient :
 +  * h2-1.4.200.jar qui permet de lancer le serveur et qui est utile pour le compilation des sources java
 +  * Les squelettes java à modifier pour répondre aux questions (les fichiers *.java)
 +  * Les scripts de création et de remplissage de la base tennis (les fichiers *.sql)
 +
  
 Lancer le serveur en tapant Lancer le serveur en tapant
  
 <code bash> <code bash>
-java -cp h2-1.4.200.jar org.h2.tools.Server -tcp -tcpPort 9093  &+java -cp h2-1.4.200.jar org.h2.tools.Server -ifNotExists -tcp -tcpPort 9093  &
 </code> </code>
  
 ==== Chargement des données ==== ==== Chargement des données ====
 +
 +
 +<showif isloggedin>
 +<fc #008000>La base H2 ~/test n'existe pas par défaut. Il faut la créer d'abord en utilisant le menu du serveur (icone dans la barre). J'ai créé une base par défaut jdbc (user: jdbc, password: jdbc) qui est inclus dans le fichier jar.</fc>
 +</showif>
 +
 +Il existe déjà une base par défaut H2/jdbc (user: jdbc, password: jdbc).
 Pour charger les données, taper les commandes suivantes : Pour charger les données, taper les commandes suivantes :
 +
 +<showif isloggedin>
 +<fc #008000>Sous windows java -cp h2*.jar ne marche pas. J'ai remplacé par le chemin exact.</fc>
 +</showif>
 +
 +Linux et Mac:
  
 <code bash> <code bash>
-java -cp h2*.jar org.h2.tools.RunScript -url jdbc:h2:~/test -script creations.sql +java -cp .:h2-1.4.200.jar org.h2.tools.RunScript -url jdbc:h2:./H2/jdbc -user jdbc -password jdbc -script creations.sql 
-java -cp h2*.jar org.h2.tools.RunScript -url jdbc:h2:~/test -script insertions.sql+java -cp .:h2-1.4.200.jar org.h2.tools.RunScript -url jdbc:h2:./H2/jdbc -user jdbc -password jdbc -script insertions.sql
 </code> </code>
 +
 +Windows: 
 +
 +<code bash>
 +java -cp .;h2-1.4.200.jar org.h2.tools.RunScript -url jdbc:h2:./H2/jdbc -user jdbc -password jdbc -script creations.sql
 +java -cp .;h2-1.4.200.jar org.h2.tools.RunScript -url jdbc:h2:./H2/jdbc -user jdbc -password jdbc -script insertions.sql
 +</code>
 +
 +Vous pouvez créer une autre base en utilisant le menu du serveur H2 accessible à partir de votre barre de menu en bas de l'ecran. Dans ce cas, il faudra aussi changer le fichier Connexion.java.
  
 ==== Tester la connexion JDBC ==== ==== Tester la connexion JDBC ====
Ligne 74: Ligne 120:
 Compiler puis exécuter //Tmejdbc.java// en tapant Compiler puis exécuter //Tmejdbc.java// en tapant
  
 +Linux et Mac (compilation):
 <code bash> <code bash>
-javac -cp h2-1.4.200.jarTmejdbc.java +javac -cp .:h2-1.4.200.jar Tmejdbc.java  
-java -cp h2-1.4.200.jar: Tmejdbc+</code>
  
 +Windows  (compilation):
 +<code bash>
 +javac -cp .;h2-1.4.200.jar Tmejdbc.java 
 +</code>
 +
 +
 +Mac et Linux  (exécution):
 +<code bash>
 +java -cp .:h2-1.4.200.jar Tmejdbc
 +</code>
 +Windows  (exécution):
 +<code bash>
 +java -cp .;h2-1.4.200.jar Tmejdbc
 </code> </code>
  
Ligne 108: Ligne 168:
 pour cette question, rajouter dans  //Tmejdbc.java// les deux lignes suivantes qui permettent d'instancier  pour cette question, rajouter dans  //Tmejdbc.java// les deux lignes suivantes qui permettent d'instancier 
 un objet de la classe //afficherJoueurs// et d'exécuter sa méthode //executer()//. un objet de la classe //afficherJoueurs// et d'exécuter sa méthode //executer()//.
 +
 <code java> <code java>
  
Ligne 149: Ligne 210:
 </code> </code>
 </showif> </showif>
 +
 +Il faut recompiler Tmejdbc.java et afficherJoueurs.java:
 +
 +Linux et Mac:
 +<code bash>
 +javac -cp .:h2-1.4.200.jar Tmejdbc.java afficherJoueurs.java
 +</code>
 +
 +Windows:
 +<code bash>
 +javac -cp .;h2-1.4.200.jar Tmejdbc.java afficherJoueurs.java
 +</code>
 +et ensuite exécuter le programme principal:
 +Mac et Linux:
 +<code bash>
 +java -cp .:h2-1.4.200.jar Tmejdbc
 +</code>
 +<code bash>
 +java -cp .;h2-1.4.200.jar Tmejdbc
 +</code>
 +
 +
 +
  
 2- Modifier  //afficherDuels.java// pour afficher les joueurs qui se sont affrontés à Roland Garros en 1994. 2- Modifier  //afficherDuels.java// pour afficher les joueurs qui se sont affrontés à Roland Garros en 1994.
Ligne 180: Ligne 264:
 public class sponsorPrimes { public class sponsorPrimes {
         public void executer(Connexion conn) {         public void executer(Connexion conn) {
-            String requete = "select Sponsor, max(Prime) as max_prime from Gain group by Sponsor order by max_prime desc ";+            String requete = "select nomsponsor, max(Prime) as max_prime from Gain group by nomsponsor order by max_prime desc ";
                 try {                 try {
                         Statement lecture =  conn.connexion.createStatement();                         Statement lecture =  conn.connexion.createStatement();
site/enseignement/licence/3i009/tme_jdbc_h2.1607090006.txt.gz · Dernière modification : de amine