RecentChanges
|
FindPage
|
LikePages
|
BackLinks
View Source:
JDBC
Note:
This page has been locked and cannot be edited.
!!! TME JDBC : Accès à un SGBD depuis Java !!Préparation * lire le [sujet | http://www-master.ufr-info-p6.jussieu.fr/2006/Ext/naacke/bdr2008/extra/tme_jdbc.pdf] (ou voir poly). Seulement la partie JDBC (pas JSP) * lire les [API|http://www-ari.ufr-info-p6.jussieu.fr/OUTILS/documentation/doc/Java/jdk1.6/docs/api/index.html] (choisir le package java.sql, dans le cadre en haut à gauche) * installer les fichiers : tar zxvf $BD_TOOL/jdbc-etu.tgz * ceux qui utilisent Eclipse doivent référencer le jar /Infos/bd/client10/ojdbc14.jar dans leur projet. ** cliquer avec le bouton droit sur le nom de votre projet, puis choisir Propriétés ** Sélectionner ''Java build Path'', puis l'onglet ''Librairies'' ** Bouton Add External Jars, sélectionner, depuis la racine **/**, le fichier /Infos/bd/client10/ojdbc14.jar ** Ok !!Séance 1 * installer l'environnement de travail (voir le poly, étape 1 uniquement) * Commencer l'étape 1 du sujet: répondre aux questions a) à d) dans le fichier rapport.txt * Dans la question 1.1 : compléter les lignes commentaires: ** Si nécessaire, ajuster les informations de connexion : <verbatim> String server = "oracle.ufr-info-p6.jussieu.fr"; String port = "1521"; String database = "ora10"; </verbatim> Question fréquente concernant la compilation java: Comment éviter les warning du compilateur concernant le jeu de caractères UTF-8 ? * afin de pouvoir compiler des programmes java contenant des caractères accentués, le jeu de caractères par défaut doit être européen (ISO-8859-1) : <verbatim> export LC_CTYPE="fr_FR" ou export LC_ALL="fr_FR" </verbatim> * Vérification du jeu avec la commande <verbatim> locale charmap </verbatim> ! Question 2 : ~MaxPrime2. Définir une requête ''paramétrée'' : * la requête est une chaîne de caractères contenant un point d'interrogation __?__ pour chaque paramètre * Exemple "select * from Joueur2 where annaiss = __?__ " * voir l'exemple dans la documentation de l'interface [PreparedStatement | http://www-ari.ufr-info-p6.jussieu.fr/OUTILS/documentation/doc/Java/jdk1.6/docs/api/java/sql/PreparedStatement.html] Questions fréquentes concernant ~MaxPrime2: * Comment __comparer 2 chaînes__ de caractères a et b ? * utiliser la méthode : a.equals(b) * l'opérateur a==b ne compare pas le contenu des chaînes de caractères mais leur identifiant d'objet. * Comment __convertir__ une chaîne de caractères en un nombre entier ? * int n = Integer.parseInt(chaine); ! Questions 3 : Requête générique * L'exécution du programme GeneriqueHTML doit produire ce [résultat | http://www-master.ufr-info-p6.jussieu.fr/2006/Ext/naacke/bdr2009/extra/tme/GeneriqueHTML.html] * attention, le paramètre (la requête) doit être entre " " !! Séance 2 * Finir la question 3 * Question 4: Schéma d'une relation. * le pattern pour désigner n'importe quelle chaine de caractère en SQL est "%" * Question 5: * Ajuster l'ULR d'accès à la 2eme base * String url2 = "jdbc:oracle:thin:@oracle2.ufr-info-p6.jussieu.fr:1521:ora2"; // base des sponsors * jointure inter-bases : créer un ~PreparedStatement sur les Sponsors, dont le paramètre est l'attribut de jointure. * jointure par boucles imbriquées : attention, le ~ResultSet sur les sponsor (boucle interne) doit être de type __scrollable__. Voir le paramètre resultSetType de la méthode Connection.createStatement. Voir aussi le champ ~ResultSet.TYPE_SCROLL_INSENSITIVE. !! Séance 3 * Finir la question 5 * jointure par tri puis fusion. Etendre l'algorithme pour traiter le cas d'une équi-jointure entre 2 attributs non uniques (''i.e.'' 2 clés étrangères) et un ~ResultSet scrollable. * jointure par transfert de clés (semi-jointure). * (facultatif) implémenter d'autres algorithmes de [jointure | http://www-master.ufr-info-p6.jussieu.fr/2006/Ext/naacke/bdr2009/extra/tme/algo_jointure.pdf], tout en utilisant JDBC. !! Documentation diverse * Algorithmes de [jointure | http://www-master.ufr-info-p6.jussieu.fr/2006/Ext/naacke/bdr2009/extra/tme/algo_jointure.pdf] (anglais) * Liens externes : un [cours HTML | http://nephi.unice.fr/CoursHTML/] (université de Nice), un autre [manuel HTML | http://www.infini-fr.com/Sciences/Informatique/Reseaux/Internet/WorldWideWeb/Html/index.html], un [cours java| http://www.infini-fr.com/Sciences/Informatique/Langages/Imperatifs/Java/java.html], Java 1.5 [API | http://java.sun.com/j2se/1.5/docs/api/index.html], ... ---- retour vers: [TmeJSP], [LesTravauxDirigés], LesCours, l'[Accueil].