JDBC ou comment manipuler une base de données en Java ?

Slides:



Advertisements
Présentations similaires
Présentation de frameworks J2EE
Advertisements

Réaliser en Java un programme client d’une Base de Données
Module 5 : Implémentation de l'impression
Introduction Fonctionnement PluginsConfigurationLes données Le framework MAG Framework de conception de canaux complexes Implémente IChannel Possède son.
(Classes prédéfinies – API Java)
51 Les technologies XML Cours 6 : XML et les architectures N-tiers – Tier Métier Janvier Version 1.0 -
MySQL et PHP.
Les Bases de données et le Web
TD 1 IJA Introduction Objet, méthode, attribut Classe, instance
Stéphane Frenot - Département Télécommunication - SID - II - Jdbc 280 JDBC Java Databases Connectivity.
PHP mySQL Extension php_mysql. Connexion à une base de données Établir une connexion mysql_connect(string server, string username, string password) –permet.
UV JDBC Module Java Expert
Programmation dapplications Bases de données avec Java INT.
JSP Java Server Pages Cours JSP.
Jérôme CUTRONA PHP PDO Jérôme CUTRONA 01:08:01 Programmation Web
JDBC: manipuler une base de données en Java IFT6800 – E 2007 Jian-Yun Nie.
Connexion base de données
Principes de programmation (suite)
LOG 02 Bases de Données Avancées Rappels sur JSP / Servlet
Développement d’applications web
Introduction à la programmation (420-PK2-SL) cours 12 Gestion des applications Technologie de linformation (LEA.BW)
Techniques Internet de Base Licence 2 (Info, Maths, PC/PA) Université Jean Monnet Ruggero G. PENSA
L’utilisation des bases de données
HIBERNATE Framework de mapping objet-relationnel
Middleware : XML-DBMS Permet de faire office d’interface entre des données XML et des bases de données relationnelles (insertion et récupération de données)
Les méthodes en java Une méthode est un regroupement d’instructions ayant pour but de faire un traitement bien précis. Une méthode pour être utilisée.
JDBC Java Data Base Connectivity. Java DataBase Connectivity (JDBC) Cette API est développée par Sun en collaboration avec les grands éditeurs de SGBD.
1 Développement des Applications des Bases de Données Chapitre 6.
Connexion en mode application. Bases de données - Yann Loyer2 Connexion en mode application Pour tout type dutilisateurs : –passif, actif, gérant Permettre.
Les instructions PHP pour l'accès à une base de données MySql
L’utilisation des bases de données
Gestion des bases de données
1 Développement des Applications des Bases de Données Chapitre 6.
1 CSI 2532 Lab5 Installation de JDBC Février 13, 2012.
COURS DE PROGRAMMATION ORIENTEE OBJET :
1 CSI 2532 Lab6 Application Web et DB Février 27, 2012.
Christine Bonnet SOURCES : « Samples » dOracle, « Oracle 8 » R. Chapuis PRO*C – C ++
‘‘Open Data base Connectivity‘‘
Programmation Internet en PHP SIL module M12
Juin 2006~ Brigitte Groléas ~ 1 J530 (JBD) Java : Base de Données.
Content Management System CMS. Pourquoi ? Obligation de ressaisir des contenus publiés à plusieurs endroits Pas d’outils de gestion de qualité de l’information.
Cours n°4M2. ESCE (S. Sidhom) Séminaire ( 6-12 Février 2007 ) Promo. M2 ESCE-Tunis 2006/07 Conception d’un système d'information sur Internet Architecture.
JDBC L'API JDBC est utilisée pour utilisée pour intéragir avec une base de données.
Les Composants de l’architecture Oracle
CEG3585/CEG3555 Tutorat 2 Hi ver 2013.
Masters IIGLI et ILGII – Intranet internet extranet – – Claude Montacié 1 Cours n° 10 Accès distant aux bases de données.
 Requêtes MySQL en PHP Introduction
Module 9 : Transfert de données. Vue d'ensemble Présentation du transfert de données Outils d'importation et d'exportation de données disponibles dans.
1 PHP 5 Notions fondamentales (cours #5) Formation continue – Cégep de Sainte-Foy.
Les sockets.
Schéma de conception Factory Method Exemple Sylvain Giroux.
Cours LCS N°4 Présenté par Mr: LALLALI
Le Langage SQL Introduction. 2 Historique du Langage SQL E. F. CODD : premiers articles dans les années 70 IBM crée le langage SEQUEL (Structured English.
Gestion d’accès aux centrales nucléaires françaises
Master 1 SIGLIS Intégration des données dans l’entreprise Stéphane Tallard JDBC: Java Database Connectivity Master 1 SIGLIS1JDBC.
Cours n°4M1.ist-ie (S. Sidhom) UE 203 Promo. M1 IST-IE 2006/07 Conception d’un système d'information sur Internet Architecture trois-tiers : technologies.
JDBC - p. 1 JDBC. JDBC - p. 2 Objectifs Fournir un accès homogène aux SGBDR Abstraction des SGBDR cibles Requêtes SQL Simple à mettre en oeuvre Core API.
02/06/2015© Robert Godin. Tous droits réservés.1 5 Interface entre SQL et un programme n SQL incomplet n Défaut d'impédance (impedance mismatch) – modèle.
Interface Java – Oracle : JDBC. I-2 JDBC (Java DataBase Connectivity) : interface API (Application Programming Interface) qui permet d’exécuter des ordres.
JDBC Présenter par: Mouctar Souleymane Bah Enseignent: Dr Amer Draâ
06/04/06 LES BASES DE DONNEES INTRODUCTION CogniTIC – Bruxelles Formation - Cepegra.
Architecture Client/Serveur
JDBC (Complément de cours) IFT 3030
LES BASES DE DONNEES PRÉSENTÉ PAR CATHY ET THIBAULT.
Séance /10/2004 SGBD - Approches & Principes.
Installation du PGI – CEGID
JDBC - Y. Bekkers1 Java et les SGBDR Librairies JDBC Yves Bekkers.
FACTORY systemes Module 2 Section 1 Page 2-3 Installation d’Industrial SQL FORMATION InSQL 7.0.
APP-TSWD Apprentissage Par Problèmes Techniques des Sites Web Dynamiques Licence Professionnelle FNEPI Valérie Bellynck, Benjamin Brichet-Billet, Mazen.
Transcription de la présentation:

JDBC ou comment manipuler une base de données en Java ?

Introduction JDBC: Java database connectivity, c’est du JAVA ! API développée par SUN pour permettre à des applications Java d'accéder à des bases de données relationnelles quelconques. Les étapes principales Se connecter à une base de données Envoyer une requête SQL Manipuler le résultat JDBC: un driver (pilot) fournit des outils pour ces fonctions

Driver Protocole Natif Application JAVA API JDBC JDBC Driver Manager Driver Protocole Natif Appels SQL ? Base de Données Définition L’API JDBC permet d'executer des instructions SQL. JDBC fait partie du JDK (Java Development Kit) : Paquage java.sql import java.sql.*; JDBC pour executer, depuis un programme Java, l'ensemble des ordres SQL reconnus par la base de donnees cible. Le pilote... établit le lien avec la base de donnees, en sachant “lui parler". Dans JDBC : des classes chargées de gérer un pilote... Des pilotes existent pour mySQL, Oracle, postGresSQL, ACCESS,... La connexion... Elle peut s'etablir SI on donne l'adresse de la BD a laquelle se connecter...

Interfaces de JDBC (2) getConnection() Canal de communication TCP vers une BD createStatement() gère les requêtes SQL executeQuery() gère l’accès aux tuples d’un résultat

Préparatifs D’abord installer un driver JDBC E.g. SQL server 2000 de Microsoft http://msdn2.microsoft.com/en-us/sql/aa336272.aspx MySQL : MySQL Connector : mysql-connector-java-5.0.8-bin.jar (le plus récent ou le plus adapté à votre version java)

Étape 1: charger le pilote Charger le pilote (driver) contient toutes les classes nécessaire pour communiquer avec une base de données utiliser la méthode forName de la classe Class EX : MySQL: Class.forName("com.mysql.jdbc.Driver"); Pont ODBC-JDBC Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); Cette méthode charge en mémoire la classe demandée et exécute son éventuel bloc static. static { BaseDriver.registerDriver(new SQLServerDriver()); } Pour que cela fonctionne, il faut définir la variable d’environnement CLASSPATH et inclure le répertoire contenant les classes du driver

Étape 2: établir une connexion Pour établir la connexion avec SQL Server, il faut préciser le nom de la machine (ou son numéro IP), le port où le service SQL est démarré (par ex : 3306 pour localhost), le nom de la base de données, le login utilisé ainsi que son mot de passe. try { String strClassName = "com.mysql.jdbc.Driver« ; Class.forName(strClassName); String strUrl = "jdbc:mysql://localhost:3306/" + dbName; Connection conn = DriverManager.getConnection(strUrl, login="root", passwd=""); // . . . conn.close(); } catch(ClassNotFoundException e) { System.err.println("Driver non chargé !"); e.printStackTrace(); } catch(SQLException e) { Charger le pilote Établir la connexion opérations

Étape 2: établir une connexion Établir la connexion avec MySQL DriverManager: sa méthode statique getConnection va créer un objet de connexion de la classe Connection.

Étape 3: Requête SQL L’exécution d’une requête SQL passe par l'utilisation d'une classe, spécifique au pilote utilisé, implémentant l'interface Statement Un objet de type Statement se doit d'être adapté à la base manipulée. JDBC ne fournit que l'interface Statement, qui est implantée par différentes classes du pilote chargé Obtenir un objet Statement: avec la méthode createStatement.

Exemple try { String strClassName = "com.mysql.jdbc.Driver"; Class.forName(strClassName); String strUrl = "jdbc:mysql://localhost:3306/MaBase" ; Connection conn = DriverManager.getConnection(strUrl, "root", ""); String strInsert = "INSERT INTO T_Users (Login, Password, ConnectionNumber) VALUES ('Toto', 'Titi', 0);"; Statement st0 = conn.createStatement(); st0.executeUpdate(strInsert); conn.close(); } catch(ClassNotFoundException e) { // . . . } catch(SQLException e) { Créer un Statement Exécuter un ordre SQL

Exécuter une requête SELECT l'ordre SQL "SELECT * FROM T_Users;" L'appel à "executeQuery" renvoie au final un objet de type ResultSet try { String strClassName = "com.mysql.jdbc.Driver"; Class.forName(strClassName); String strUrl = "jdbc:mysql://localhost:3306/MaBase;" Connection conn = DriverManager.getConnection(strUrl,"root", ""); Statement st1 = conn.createStatement(); String strQuery = "SELECT * FROM T_Users;"; String strQuery2 = « select login from T_users »; ResultSet rs1 = st1.executeQuery(strQuery); ResultSet rs2 = st1.executeQuery(strQuery2); // . . . Utilisation du ResultSet . . . conn.close(); } catch(ClassNotFoundException e) { // . . . } catch(SQLException e) { Requête Exécuter la requête et stocker le résultat

Manipuler le résultat On peut identifier chaque colonne de la base de donnée Par son index Par son nom String Query = "SELECT * FROM T_Users;"; ResultSet rs1 = st1.exexcuteQuery(Query); while(rs1.next()) { String pass = rs1.getString(« Password »); System.out.print("Id[" + rs1.getInt(1) + "]" + rs1.getString(2) + "[" + rs1.getString("Password") + "] " + rs1.getInt("ConnectionNumber") ); } conn.close();

Modifier le résultat ou la base Se positionner sur le premier enregistrement rs1.first(); Ou avancer jusqu’à l’élément voulu : rs1.next() Modifie la valeur du Password dans le résultat rs1.updateString("Password", "toto"); Pour appliquer les modifications dans la base de données: rs1.updateRow();

Quelques notions de Meta Données (Metadata) JDBC Quelques notions de Meta Données (Metadata) Les meta données sont des données sur les données. Chaque ResultSet possède ses propres MetaDonnées. Elles sont utilisées pour obtenir les noms des colonnes dans un ResultSet ainsi que le type des données qui se trouvent dans chacune d'elles. Obtenir les meta-données Utiliser les meta-données Les méta données sont stockées dans un ResultSetMetaData.

Autres opérations Stocker une procédure Gérer des transactions …