Ci-dessous, les différences entre deux révisions de la page.
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 [07/12/2020 16:35] amann |
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 32: | Ligne 31: | ||
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> | + | |
+ | Linux et Mac: | ||
+ | <code> javac -cp .:lib.jar Fichier.java </code> | ||
+ | |||
+ | Windows: | ||
+ | <code> javac -cp .;lib.jar Fichier.java </code> | ||
<showif isloggedin> | <showif isloggedin> | ||
<fc #008000>Attention:</fc> | <fc #008000>Attention:</fc> | ||
</showif> | </showif> | ||
- | Attention: Si le fichier Fichier.java fait référence à une classe MaClasse définies dans le fichier MaClasse.java, il faut compiler tous les fichiers ensembles: | ||
- | <code> javac -cp lib.jar Fichier.java MaClasse.java </code> | ||
- | Cette commande va créer un binaire appelé //Fichier.class//. | + | 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 53: | Ligne 62: | ||
*/ | */ | ||
- | Télécharger l'archive {{ :site:enseignement:licence:3i009:tmejdbc-h2.tgz |TMEJDBC-H2}} contenant les sources | + | 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. |
- | + | ||
- | puis extraire son contenu en tapant | + | |
+ | AVec tar: | ||
<code bash> | <code bash> | ||
- | tar xzf TMEJDBC-H2.tgz | + | tar xzf TMEJDBC-H2.zip |
cd TMEJDBC-H2 | cd TMEJDBC-H2 | ||
</code> | </code> | ||
Ligne 71: | Ligne 79: | ||
<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 ==== | ||
- | Pour charger les données, taper les commandes suivantes : | + | |
<showif isloggedin> | <showif isloggedin> | ||
- | <fc #008000>Sous windows java -cp h2*.jar ne marche pas. J'ai remplacé par le chemin exact.</fc> | + | <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> | </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 : | ||
<showif isloggedin> | <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> | + | <fc #008000>Sous windows java -cp h2*.jar ne marche pas. J'ai remplacé par le chemin exact.</fc> |
</showif> | </showif> | ||
- | Il existe déjà une base par défaut H2/jdbc (user: jdbc, password: jdbc): | + | Linux et Mac: |
+ | |||
+ | <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> | ||
+ | |||
+ | Windows: | ||
<code bash> | <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 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 | + | 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> | ||
Ligne 102: | Ligne 120: | ||
Compiler puis exécuter //Tmejdbc.java// en tapant | Compiler puis exécuter //Tmejdbc.java// en tapant | ||
- | <showif isloggedin> | + | Linux et Mac (compilation): |
- | <fs x-large><fc #008000>Il faut compiler les trois fichiers .java ensemble</fc></fs> | + | <code bash> |
- | </showif> | + | javac -cp .:h2-1.4.200.jar Tmejdbc.java |
+ | </code> | ||
+ | Windows (compilation): | ||
<code bash> | <code bash> | ||
- | javac -cp h2-1.4.200.jar: Tmejdbc.java Connexion.java TestConnexion.java | + | javac -cp .;h2-1.4.200.jar Tmejdbc.java |
- | java -cp h2-1.4.200.jar: Tmejdbc | + | </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 140: | 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 181: | 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 212: | 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(); |