Stéphane Frenot - Département Télécommunication - SID - II - Jdbc 280 JDBC Java Databases Connectivity.

Slides:



Advertisements
Présentations similaires
Réaliser en Java un programme client d’une Base de Données
Advertisements

Introduction Fonctionnement PluginsConfigurationLes données Le framework MAG Framework de conception de canaux complexes Implémente IChannel Possède son.
51 Les technologies XML Cours 6 : XML et les architectures N-tiers – Tier Métier Janvier Version 1.0 -
Les Bases de données et le Web
JAV - TD 6 Structures de données JAVA



Stéphane Frenot - Département Télécommunication - SID - II - EjbEnt 247 Entity EJB.
Stéphane Frenot - Département Télécommunication - SID - II - EjbServ 227 EJB Session.

Stéphane Frenot - Département Télécommunication - SID - II - EJBcli 211 Le client EJB.
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
Les passerelles BD/WEB
Programmation dapplications Bases de données avec Java INT.
Programmation dapplication INT. 2 Bases de Données Plan du document Contexteslide 1 Programmer avec une BDslide 2 Client-Serveur SQL et architecture 3.

JSP Java Server Pages Cours JSP.
JDBC: manipuler une base de données en Java IFT6800 – E 2007 Jian-Yun Nie.
Connexion base de données
LOG 02 Bases de Données Avancées Rappels sur JSP / Servlet
Contrôles d'accès aux données
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)
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.
JDBC ou comment manipuler une base de données en Java ?
Les instructions PHP pour l'accès à une base de données MySql
L’utilisation des bases de données
1 Développement des Applications des Bases de Données Chapitre 6, Sections
EPID-CPI-ISAIP Philippe Bancquart - mise à jour 24/02/ page 1 Procédures stockées CPI-SQLServer.
1 Développement des Applications des Bases de Données Chapitre 6.
1 CSI 2532 Lab5 Installation de JDBC Février 13, 2012.
Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke1 Développement des Applications des Bases de Données Chapitre 6, Sections
1 PHP 1.Langage PHP 1.1. Types de base, variables et constantes 1.2. Opérateurs et expressions 1.3. Instructions 1.4. Fonctions 2.Accès aux bases de données:
1 Les paquetages («packages»). 2 L'objectif avec les paquetages («packages») est de rendre accessibles aux utilisateurs des classes définies par d'autres.
CSI 1502 Principes fondamentaux de conception de logiciels
1 CSI 2532 Lab6 Application Web et DB Février 27, 2012.
Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke1 Développement des Applications des Bases de Données Chapitre 6.
Christine Bonnet SOURCES : « Samples » dOracle, « Oracle 8 » R. Chapuis PRO*C – C ++
Une introduction à Java
Programmation Internet en PHP SIL module M12
Juin 2006~ Brigitte Groléas ~ 1 J530 (JBD) Java : Base de Données.
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.
Masters IIGLI et ILGII – Intranet internet extranet – – Claude Montacié 1 Cours n° 10 Accès distant aux bases de données.
 C'est une fenêtre par laquelle les informations d'une table peuvent être visualisées et changées.  C'est une table virtuelle: ◦ elle n'existe pas ◦
Projet SurfCam : Sous partie Stockage des acquisitions.
Les sockets.
Gérer les rôles.
Master 1 SIGLIS Intégration des données dans l’entreprise Stéphane Tallard JDBC: Java Database Connectivity Master 1 SIGLIS1JDBC.
Quinio1 Bases de données : modèlisation et SGBD Séance 3 B Quinio.
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â
Les bases de données Séance 8 Jointures.
JDBC (Complément de cours) IFT 3030
Séance /10/2004 SGBD - Approches & Principes.
JAVA Les Entrées-sorties
Générateur d’applications WEB de gestion de données Génération de la base de données.
Modélisation et utilisation Aurélien Marion1 Aurélien Marion
JDBC - Y. Bekkers1 Java et les SGBDR Librairies JDBC Yves Bekkers.
1 Les bases de données Séance 5 -- Le Langage de Définition de Données ou la manœuvre de la structure de la base -- Le Langage de Manœuvre de Données.
ISI5 Développement d’interfaces Homme-Machine
Transcription de la présentation:

Stéphane Frenot - Département Télécommunication - SID - II - Jdbc 280 JDBC Java Databases Connectivity

Stéphane Frenot - Département Télécommunication - SID - II - Jdbc 281 Objectifs Fournir un accès homogène aux SGBDR Abstraction des SGBDR cibles Requêtes SQL Simple à mettre en oeuvre Core API (1.1)

Stéphane Frenot - Département Télécommunication - SID - II - Jdbc 282 Fonctionnement JDBC interagit avec le SGBDR par un driver Il existe des drivers pour Oracle, Sybase, Informix, DB2,... 4 types de drivers : –1. Bridge ODBC (fourni avec JDBC) –2. Native-API partly-Java driver –3. JDBC-Net all-Java driver –4. Native-protocol all-Java driver 1. et 2. nécessite des architectures 3-tiers pour les applets

Stéphane Frenot - Département Télécommunication - SID - II - Jdbc 283 Drivers JDBC Application Java JDBC API JDBC NetDriver JDBC-ODBC Bridge Client JDBC-Native Bridge JDBC-Net Bridge All Java JDBC Driver ODBC Driver (Type 1) Native API (C, C++) (Type 2) (Type 3) (Type 4) SGBDR

Stéphane Frenot - Département Télécommunication - SID - II - Jdbc 284 Architectures 2-tier et 3-tier SGBDR JDBCJDBC Application ou Applet SGBDR JDBCJDBC AppletFrontend Architecture 2-tier Architecture 3-tier TCP / Protocole propriètaire (SqlNet Oracle)

Stéphane Frenot - Département Télécommunication - SID - II - Jdbc 285 Accès aux données 1 Charger le driver 2 Connexion à la base 3 Création d'un statement 4 Exécution de la requête 5 Lecture des résultats

Stéphane Frenot - Département Télécommunication - SID - II - Jdbc 286 Chargement du driver Utiliser la méthode forName de la classe Class : –Class.forName("sun.jdbc.odbc.JdbcOrdbDriver").newInstance(); –Class.forName("postgres95.pgDriver").newInstance();

Stéphane Frenot - Département Télécommunication - SID - II - Jdbc 287 Connexion à la base (1/2) Accès via un URL qui spécifie : –l'utilisation de JDBC –le driver ou le type du SGBDR –l'identification de la base Exemple : String url="jdbc:odbc:ma_base"; String url="jdbc:pg95:mabase?username=toto:password=titi"; Ouverture de la connexion : Connection conn = DriverManager.getConnection(url, user, password);

Stéphane Frenot - Département Télécommunication - SID - II - Jdbc 288 Création d'un Statement 3 types de statement : –statement : requêtes simples –prepared statement : requêtes précompilées –callable statement : procédures stockées Création d'un statement : Statement stmt = conn.createStatement();

Stéphane Frenot - Département Télécommunication - SID - II - Jdbc 289 Execution d'une requête (1/2) 3 types d'executions : –executeQuery : pour les requêtes qui retournent un ResultSet –executeUpdate : pour les requêtes INSERT, UPDATE, DELETE, CREATE TABLE et DROP TABLE –execute : pour quelques cas rares (procédures stockées)

Stéphane Frenot - Département Télécommunication - SID - II - Jdbc 290 Execution d'une requête (2/2) Execution de la requête : String myQuery = "SELECT prenom, nom, " + "FROM employe " + "WHERE (nom='Dupont') AND ( IS NOT NULL) " + "ORDER BY nom"; ResultSet rs = stmt.executeQuery(myQuery);

Stéphane Frenot - Département Télécommunication - SID - II - Jdbc 291 Lecture des résultats (1/2) executeQuery () renvoit un ResultSet Le RS se parcourt itérativement row par row Les colonnes sont référencées par leur numéro ou par leur nom L'accès aux valeurs des colonnes se fait par les méthodes getXXX() où XXX représente le type de l'objet Pour les très gros row, on peut utiliser des streams.

Stéphane Frenot - Département Télécommunication - SID - II - Jdbc 292 Lecture des résultats (2/2) java.sql.Statement stmt = conn.createStatement(); ResultSet rs = stmt.executeQuery("SELECT a, b, c FROM Table1"); while (rs.next()) { // print the values for the current row. int i = rs.getInt("a"); String s = rs.getString("b"); byte b[] = rs.getBytes("c"); System.out.println("ROW = " + i + " " + s + " " + b[0]); }

Stéphane Frenot - Département Télécommunication - SID - II - Jdbc 293 Accès aux méta-données La méthode getMetaData() permet d'obtenir les méta-données d'un ResultSet. Elle renvoit des ResultSetMetaData. On peut connaitre : –Le nombre de colonne : getColumnCount() –Le nom d'une colonne : getColumnName(int col) –Le type d'une colonne : getColumnType(int col) –...

Stéphane Frenot - Département Télécommunication - SID - II - Jdbc 294 Exemple complet : public class TestJDBC { public static void main(String[] args) throws Exception { Class.forName("postgres95.pgDriver"); Connection conn; conn = DriverManager.getConnection("jdbc:pg95:mabase", "dedieu", ""); Statement stmt = conn.createStatement(); ResultSet rs = stmt.executeQuery("SELECT * from employe"); while (rs.next()) { String nom = rs.getString("nom"); String prenom = rs.getString("prenom"); String = rs.getString(" "); }