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édentes Révision précédente
Prochaine révision
Révision précédente
site:enseignement:licence:3i009:tme_jdbc_h2 [04/12/2020 14:53]
amine
site:enseignement:licence:3i009:tme_jdbc_h2 [10/12/2020 12:19] (Version actuelle)
amine [Exercice 1 : Requêtes fixes]
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: 04/12/2020 14:53 par amine