JDBC (Complément de cours) IFT 3030

Slides:



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

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
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.

Connexion base de données
1 ARCHITECTURE DACCÈS la méthode générale modèle de données définitions module daccès / modules métiers construction des modèles les modules daccès, les.
LOG 02 Bases de Données Avancées Rappels sur JSP / Servlet
L’utilisation des bases de données
Le langage PHP 5.
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.
Gestion des systèmes d’information
1 Développement des Applications des Bases de Données Chapitre 6.
Développement Rapide dApplications Web avec.NET « Mon premier site »
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.
MySQL Création des sites dynamiques
Les concepts et les méthodes des bases de données
PL/SQL Noreddine GHERABI 1.
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 ++
PHP & My SQL.
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.
Chapitre 6.2 Les curseurs Cours SGBD 3A Mme hkimi Jihène
Créer des packages.
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
Projet SurfCam : Sous partie Stockage des acquisitions.
Institut Supérieur d’Informatique
Gérer les rôles.
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.
 Formulaires HTML : traiter les entrées utilisateur
Master 1 SIGLIS Intégration des données dans l’entreprise Stéphane Tallard JDBC: Java Database Connectivity Master 1 SIGLIS1JDBC.
21/04/2015© Robert Godin. Tous droits réservés.1 6Gestion des contraintes d’intégrité en SQL n Contrainte d'intégrité statique – respectée pour chacun.
Quinio1 Bases de données : modèlisation et SGBD Séance 3 B Quinio.
Initiation au web dynamique Licence Professionnelle.
Création et Gestion de Tables
 Le langage SQL Introduction SQL : Strutured Query Language, est un langage de requête, que l'on retrouve dans divers SGBDR (Access de Microsoft, MySQL,
3 Copyright © Oracle Corporation, Tous droits réservés. Créer des fonctions.
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.
Cours Access TuanLoc NGUYEN. Contact Nguyen TuanLoc Tél: Web:
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.
Le langage SQL.
Bases de données Singleton pour la connexion
Initiation aux bases de données et à la programmation événementielle
Cours n°2 Implémentation et exploitation
Modélisation et utilisation Aurélien Marion1 Aurélien Marion
JDBC - Y. Bekkers1 Java et les SGBDR Librairies JDBC Yves Bekkers.
APP-TSWD Apprentissage Par Problèmes Techniques des Sites Web Dynamiques Licence Professionnelle FNEPI Valérie Bellynck, Benjamin Brichet-Billet, Mazen.
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:

JDBC (Complément de cours) IFT 3030

Objectifs de JDBC n n Permettre aux programmeurs java d’écrire un code indépendant de la base de données n n Fournir un ensemble de classes permettant l’utilisation locale ou distante d’un ou de plusieurs SGBDR à partir d’un programme java n n Interaction transparente entre le programme java et le SGBD

API JDBC n n Package : java.sql principale classes –DriverManager pour le chargement des pilotes permettant la connexion aux bases. –Connection qui prend en charge la connexion à une base de données particulière. –Statement qui permet d'exécuter des commandes sur la base. –PreparedStatement : requêtes dynamiques. –CallableStatement : procédures stockées. –ResultSet qui permet d'accéder aux résultats d'un SELECT.

Principe de base n n Une base (SGBDR) : un pilote JDBC – –Oracle : classes12.zip n n Modèle 2 ou 3 tiers

Architecture JDBC (rappel) n n Deux types de drivers JDBC en oracle: – –Thin driver: 100 % java – –OCI driver:Java & C

Fonctionnement n n Enregistrer le driver JDBC n n Établir la connexion à la base de données n n Formuler une requête n n Exécuter la requête n n Traiter les données retournées n n Fermer la connexion

Enregistrement du driver Class.forName("oracle.jdbc.driver.OracleDriver"); n n Une instance de cette classe est créée n n Enregistrement de l’instance au niveau du DriverManager n n Mais quelques fois : – –Class.forName("oracle.jdbc.driver.OracleDriver").newInstance();

Établir la connexion à la base n n Méthode : getConnection() de DriverManager avec 3 paramètres : – –URL de la base – –Nom utilisateur – –Mot de passe de l’utilisateur n n Exemple : – –String url = – –Connection con = DriverManager.getConnection(url,"myLogin", "myPassword");

Formuler la requête n n Objet Statement est récupéré à partir de l’objet Connection (con) – –String request = "…"; – –Statement stmt = con.createStatement(); n n Exemple : – –String query = "select * from clients"; – –Statement stmt = con.createStatement();

Exécuter la requête (1/2) n n Faire appel à l’une des méthodes suivante de Statement : – –excuteQuery(query); – –executeUpdate(query);

Exécuter la requête (2/2) n n executeUpdate() : retourne le nombre de lignes affectées – –LDD : create, alter, drop – –LMD : insert, update, delete – –int i = stmt.executeUpdate(query); n n excuteQuery() : retourne un objet ResultSet – –LMD : select – –ResultSet rs = stmt.executeQuery(query);

Traitement des données retournées n n ResultSet : permet d’accéder aux champs des tuples retournés n n Il faut lire ‘mauellement’ les données et les stocker dans des variables selon les besoins n n Une boucle while pour parcourir les tuples n n Utiliser des méthodes de la forme : getXxx() – –Lire une colonne d’un type Xxx

- - Utiliser getString() si le type de la colonne est simple - - Utiliser getObject() pour des types composés… BLOB CLOB (fichier texte, fichier binaire ) - - La valeur NULL sql est convertit en la valeur correspondante en java - -getInt(), getByte() : 0 - -getString() : NULL - -getBoolean() : false getXxx()

Exemple complet String url = Connection con = DriverManager.getConnection(url,"myLogin", "myPassword"); Statement stmt = con.createStatement(); String query = "select * from clients"; ResultSet rs = stmt.executeQuery(query); while (rs.next()) { String clientLogin = rs.getString("login"); String clientName = rs.getString("nom"); System.out.println(" Login : " + clientLogin +" Nom : " + clientName); }

Parcours d’un ResultSet n n JDBC 1.xxx : Parcours itératif avec next() qui fait avancer le curseur n n Même pour le premier élément on exécute next()

Parcours d’un ResultSet (suite) n n >= JDBC 2 : Parcours itératif avec next() n n Déplacement absolu : absolute(int row), first(), last(),… n n Déplacement relatif : relative(int row),…

Fermeture de la connexion n n con.close(); n n Et aussi : n n stmt.close();

Correspondance de types Type jdbcType java CHAR, VARCHAR2, LONVARCHAR String NUMERIC, DECIMALBigDecimal BINARYbyte[] INTEGERint

Fonctionnalités avancées

Meta Data n n Un sgbd gère les informations concernant les tables de la base. – – ResultSetMetaData fournit des informations sur un objet ResultSet – –DatabaseMetaData procure des informations sur la base et le SGBD.

ResultSetMetaData n n getColumnCount() : nombre de colonnes dans le ResultSet n n getColumnClassName(int) : classe java correspondante au type de la colonne n n getColumnName(int) : nom de la colonne n n getTableName(int ) : nom de la table de la colonne n n …

DatabaseMetaData n n Méthode getMetaData() de la classe Connexion. n n Pour connaître : – –Les tables de la base : getTables() – –Les types du SGBD : getTypeInfo() – –…

Transactions n n Pour valider un ensemble de requêtes à la fois n n Par défaut : – – Mode auto-commit – –Validation de la transaction après chaque requête n n Pour passer au mode manuel : – –connexion.setAutoCommit(false) – –Pour valider : connexion.commit() – –Pour annuler : connexion.rollBack()

n n Linux : – – inclure jdk – –Modifier la variable d’environnement classepath dans le fichier : n n Dans le fichier.cshrc : setenv CLASSPATH "./u/login…/classes12.zip : $CLASSPATH" n n À partir de la console : export CLASSPATH=$CLASSPATH:.:/u/login/…/classes 12.zip Configuration