PROSIT RETOUR JAVA – JDBC Ah-Yanne Desmond Nicolas Frédéric **MOTS CLEFS / A DEFINIR Base de données : Entité dans laquelle, il est possible de stocker des données de façon structurée. Hébergeur : Personne physique ou morale qui fournit un service d’hébergement de fichier de sorte à les diffuser notamment sur le WEB Fichier Access : Fichier issue de l’application MS Access qui est un SGBDR : Système de Gestion de Base de Données Relationnel. Tables : Structures fondamentales des BD. Les infos sont structurées sous forme de colonnes, appelées champs et sous forme de lignes, appelées enregistrements. Elle est caractérisée par un identifiant et une propriété. Identificateur unique : Propriété qui n’accepte pas de doublons, appelé aussi identifiant unique. Requête SQL : Commande répondant à une syntaxe précise et qui permet la manipulation d’information à l’intérieur d’une BD. SQL permet la manipulation des tables, Gestion des droits d’accès, la maintenance de la base de données. Exceptions JAVA : Mécanisme de traitement des erreurs en JAVA. Se fait par TRY, CATCH, THROW, ou FINALLY. ODBC : Object Data Base Component, C’est un format défini par Microsoft permettant de transcrire automatiquement les requêtes et les résultats dans un format unique, pour éviter à l’utilisateur de devoir s’inquiéter du type de SGBD et de la forme des requêtes qui leur est spécifique. Nom du PROSIT => Animateur Secrétaire Scribe Intendant JDBC : API fournie pour JAVA, permet de se connecter à une BD. Elle est présente dans les paquets java.sql. Comment faire une requête SQL ? INSERT : Permet d’ajouter des enregistrements à l’intérieur d’une table INSERT INTO table (champ1,champ2,...) VALUES ('valeur1','valeur2',...); UPDATE : Permet de changer les valeurs dans les champs d’une table. UPDATE SET table champ1= nouvelle_valeur1, champ2 = nouvelle_valeur2, champ3 = nouvelle_valeur3, WHERE condition; DELETE : Permet de supprimer les enregistrements d’une table DELETE FROM table WHERE condition SELECT : Très certainement l une des commandes les plus complexes du SQL. . Cette commande va servir à faire des requêtes pour récupérer des données dans les tables. n. SELECT champ1, champ2, champ3, ... FROM table S'il y a plus d'un champ spécifié après SELECT, les champs doivent être séparés par des virgules. Les champs sont retournés dans l'ordre spécifié après la clause SELECT, et non pas dans l'ordre qu'ils ont été créés dans la table. Pour récupérer l’ensemble des champs d’une table nous utiliserons le Select * Exemple : Select * From consulte Where idPage= 1 ; Les opérateurs de condition (=,<,>,= !..), logiques (AND,OR,) peuvent être inclues dans le « WHERE ». Notion de jointure : La jointure va nous permettre de sélectionner des informations dans plusieurs tables grâce aux relations existant entre ces tables. Il va néanmoins falloir indiquer comment se fait la relation entre ces tables SELECT nom, prénom FROM Clients, Commande WHERE Commande.num_client = Client.num_client La clause DISTINCT sélectionne chaque ligne distincte du résultat de la requête en éliminant les doublons, soit des lignes dont toutes les valeurs de champs sont parfaitement égales Comment exploiter une base de donnée ? Pour pouvoir travailler sur une base de données Access en JAVA il faut tout d’abord lancer l'administrateur de source de données ODBC.(travail à effectuer dans le panneau de configuration) Ensuite il faut lancer l’application Java (Eclipse) puis importer le package java.sql « import java.sql.*; » Chargement du pilote : Pour se connecter à une base de données via ODBC, il faut tout d'abord charger le pilote JDBC-ODBC qui fait le lien entre les deux « Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); » Etablissement d’une connexion : Pour se connecter à une base de données, il faut instancier un objet de la classe Connection en lui précisant sous forme d'URL la base à accéder String DBurl = "jdbc:odbc:testDB"; con = DriverManager.getConnection(DBurl); La syntaxe URL peut varier d'un type de base de données à l'autre mais elle est toujours de la forme : protocole:sous_protocole:nom « jbdc » désigne le protocole est vaut toujours « jdbc ». « odbc » désigne le sous protocole qui définit le mécanisme de connection pour un type de bases de don Le nom de la base de données doit être celui saisi dans le nom de la source sous ODBC Accéder à la Base de données : Une fois la connexion établie, il est possible d'exécuter des ordres SQL. Les objets qui peuvent être utilisés pour obtenir des informations sur la base de données sont : Classe Rôle DatabaseMetaData informations à propos de la base de données : nom des tables, index, version ... ResultSet résultat d'une requête et information sur une table. L'accès se fait enregistrement par enregistrement. ResultSetMetaData informations sur les colonnes (nom et type) d'un ResultSet Exécution des requêtes SQL : Les requêtes d'interrogation SQL sont exécutées avec les méthodes d'un objet Statement que l'on obtient à partir d'un objet connexion. ResultSet résultats = null; String requete = "SELECT * FROM client"; try { Statement stmt = con.createStatement(); résultats = stmt.executeQuery(requete); } catch (SQLException e) { //traitement de l'exception } Un objet de la classe Statement permet d'envoyer des requêtes SQL à la base. Le création d'un objet Statement s'effectue à partir d'une instance de la classe Connexion : Statement stmt = con.createStatement(); Pour une requête de type interrogation (SELECT), la méthode à utiliser de la classe Statement est exécuteQuery Pour une requête de type interrogation (SELECT), la méthode à utiliser de la classe Statement est exécuteQuery Le résultat d'une requête d'intérrogation est renvoyé dans un objet de la classe ResultSet par la méthode executeQuery(). ResultSet rs = stmt.executeQuery("SELECT * FROM employe");