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.

Slides:



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

PL/SQL : Le Langage PL/SQL est une extension du SQL, qui offre
Les Systèmes de Gestion de Bases de Données (SGBD) PL-SQL.
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
Stéphane Frenot - Département Télécommunication - SID - II - Jdbc 280 JDBC Java Databases Connectivity.
UV JDBC Module Java Expert
CURSUS DE FORMATION AUX NOUVELLES TECHNOLOGIES DE DEVELOPPEMENT UV EJB Entité Module Java Expert.
TP 3-4 BD21.
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.

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
1 Développement des Applications des Bases de Données Chapitre 6, Sections
Introduction à la programmation (Java)
F Copyright © Oracle Corporation, Tous droits réservés. Créer des programmes avec Procedure Builder.
EPID-CPI-ISAIP Philippe Bancquart - mise à jour 24/02/ page 1 Procédures stockées CPI-SQLServer.
SYSTEME DE GESTION DE BASES DE DONNEES
Dépendances entre les chapitres
PLSQL ORACLE 8i Connecter VB à BD Oracle Les collections Question de révision Les blocs anonymes Les triggers REVISION Par : Joël Huot.
1 Développement des Applications des Bases de Données Chapitre 6.
LIFI-Java 2004 Séance du Jeudi 9 sept. Cours 1. La notion de langage Décrire une tâche à effectuer –programme Écrire à un haut niveau –facile pour lutilisateur.
Bases de Données Avancées - TP2: SQL
Chapitre 9 Les sous-programmes.
PL/SQL Noreddine GHERABI 1.
Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke1 Développement des Applications des Bases de Données Chapitre 6.
Document élaboré à Centrale Paris par Pascal Morenton LES TECHNOLOGIES DU WEB 1. LES PHASES D UN DEPLOIEMENT DE RESEAUX 2. LE LANGAGE HTML 3. LE LANGAGE.
Christine Bonnet SOURCES : « Samples » dOracle, « Oracle 8 » R. Chapuis PRO*C – C ++
Les transactions.
Chapitre 3 Les bibliothèques de balises JSP et la JSTL
JEE 5 F.Pfister 2 institut eerie JEE – Une plateforme serveur  Développement et exécution d'applications réparties.
Introduction.
Programmation Internet en PHP SIL module M12
Juin 2006~ Brigitte Groléas ~ 1 J530 (JBD) Java : Base de Données.
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.
1 BDs Orientées Objets Witold LITWIN. 2 Pourquoi ? F Les BDs relationnelles ne sont pas adaptées aux applications CAD/CAM, cartes géo... F le problème.
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
1 Copyright © Oracle Corporation, Tous droits réservés. Présentation des sous-programmes PL/SQL.
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.
2 Processus de conception de BD
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.
Introduction  Langage propre à Oracle basé sur ADA  Offre une extension procédurale à SQL  PL/SQL permet d’utiliser un sous-ensemble du langage SQL.
Révision du langage PL/SQL
Initiation au web dynamique Licence Professionnelle.
Module 1 : Vue d'ensemble de Microsoft SQL Server
Initiation à Oracle Server
3 Copyright © Oracle Corporation, Tous droits réservés. Créer des fonctions.
4 Copyright © Oracle Corporation, Tous droits réservés. Gérer les sous-programmes.
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.
 L’information est conservée sous forme de tables  Contient: ◦ Un nom ◦ Une clé primaire ◦ Une liste de colonnes ◦ Les informations/données (sous forme.
Note: Les nombres écrits en gras renvoie à des leçons entières. Symbole %FOUND 6-13 %ISOPEN 6-13 %NOTFOUND 6-13 %ROWCOUNT 6-13 %ROWTYPE 5, 6-17 %TYPE 1-20.
Interface Java – Oracle : JDBC. I-2 JDBC (Java DataBase Connectivity) : interface API (Application Programming Interface) qui permet d’exécuter des ordres.
Le Langage SQL Introduction
JDBC Présenter par: Mouctar Souleymane Bah Enseignent: Dr Amer Draâ
Architecture Client/Serveur
Procédures Stockées Fonctions Paquetages
JDBC (Complément de cours) IFT 3030
Introduction au langage PL/SQL
Les exceptions Une exception est un identificateur PL/SQL détecté pendant la phase d’exécution. Comment est-elle déclenchée ? À la suite d’une erreur.
Le langage SQL LA Plan 1. Introduction Rappels sur le modèle relationnel Les caractéristiques du langage SQL 2. Le Langage d'Interrogation des.
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.
5 Interface entre SQL et un programme
Transcription de la présentation:

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 de données BD  – modèle de données du langage de programmation

02/06/2015© Robert Godin. Tous droits réservés.2 Interface programmatique (Call- Level Interface - SQL/CLI) n API spécifique au SGBD – e.g. Oracle Call Interface – non portable n API normalisée – standard de facto ODBC n développé par Microsoft pour le C – pilote ODBC pour client/serveur – SQL/CLI de SQL:1999 inspirée de ODBC – JDBC pour Java

02/06/2015© Robert Godin. Tous droits réservés.3 SQL enchâssé (Embedded SQL) n Code SQL dans le source du langage hôte n Syntaxe spéciale n Pré-compilation – Oracle : pro*C/C ++, pro*COBOL, …, JSQL n Moins portable – pré-compilateur spécifique au SGBD – traduit en API du SGBD n SQLJ (partie 0) traduit en API standard JDBC

02/06/2015© Robert Godin. Tous droits réservés.4 Extension procédurale à SQL (Persistent Stored Modules - SQL/PSM) n SQL + – structures de contrôle – procédures, fonctions, packages – support direct des types SQL pour les variables – exécution au niveau serveur de BD n Oracle – PL/SQL

02/06/2015© Robert Godin. Tous droits réservés.5 Routine invoquée en SQL n Stockée dans le schéma relationnel n Exécutée au niveau du serveur de BD n Langage – SQL/PSM – SQLJ (partie 1) : routines stockées en Java

02/06/2015© Robert Godin. Tous droits réservés.6 5.1SQL enchâssé n Syntaxe n Insertion d'une ligne dans la table Client

02/06/2015© Robert Godin. Tous droits réservés.7 Variables partagées n Déclaration n Utilisation de variables partagées n Vérification d ’exceptions avec SQLSTATE

02/06/2015© Robert Godin. Tous droits réservés SELECT à ligne unique

02/06/2015© Robert Godin. Tous droits réservés Curseur SQL

02/06/2015© Robert Godin. Tous droits réservés Mises à jour par curseur

02/06/2015© Robert Godin. Tous droits réservés SQL dynamique

02/06/2015© Robert Godin. Tous droits réservés Connexion (CONNECT)

02/06/2015© Robert Godin. Tous droits réservés.13 Suite n Syntaxe du CONNECT n Exemple avec SQL enchâssé en C n Pour passer d ’un connexion à l ’autre n Pour terminer une connexion

02/06/2015© Robert Godin. Tous droits réservés Introduction à l'extension procédurale PL/SQL D'Oracle

02/06/2015© Robert Godin. Tous droits réservés.15

02/06/2015© Robert Godin. Tous droits réservés.16 Compilation et stockage dans le schéma avec SQL*plus

02/06/2015© Robert Godin. Tous droits réservés.17 Appel de la procédure avec SQL*plus

02/06/2015© Robert Godin. Tous droits réservés Bloc PL/SQL

02/06/2015© Robert Godin. Tous droits réservés.19 Exécution d ’un bloc sous SQL*plus

02/06/2015© Robert Godin. Tous droits réservés Déclaration de variables PL/SQL (DECLARE)

02/06/2015© Robert Godin. Tous droits réservés Transfert d'une valeur de colonne d'un SELECT dans une variable (clause INTO)

02/06/2015© Robert Godin. Tous droits réservés Affectation en PL/SQL

02/06/2015© Robert Godin. Tous droits réservés Structure de contrôle IF

02/06/2015© Robert Godin. Tous droits réservés Boucles (LOOP, FOR, WHILE)

02/06/2015© Robert Godin. Tous droits réservés Traitement d'exception (EXCEPTION, RAISE) n Déclarer n Soulever n Attraper

02/06/2015© Robert Godin. Tous droits réservés Curseur PL/SQL (CURSOR)

02/06/2015© Robert Godin. Tous droits réservés.27 Boucle FOR pour curseur PL/SQL

02/06/2015© Robert Godin. Tous droits réservés Procédures et fonctions PL/SQL stockées

02/06/2015© Robert Godin. Tous droits réservés.29 Procédure stockée

02/06/2015© Robert Godin. Tous droits réservés PRIVILÈGES DANS UNE ROUTINE STOCKÉE n Privilèges de l'appelant (invoker rights) n Privilèges de la routine (definer rights) – privilèges du créateur – par défaut

02/06/2015© Robert Godin. Tous droits réservés.31 Exemple privilège de l’appelant

02/06/2015© Robert Godin. Tous droits réservés.32 Exemple privilège du créateur

02/06/2015© Robert Godin. Tous droits réservés.33 Exemple privilège du créateur (suite)

02/06/2015© Robert Godin. Tous droits réservés Package PL/SQL

02/06/2015© Robert Godin. Tous droits réservés Déboguage du code PL/SQL n SHOW ERRORS sous SQL*plus n Package DBMS_OUTPUT n Table USER_SOURCE dans la métabase

02/06/2015© Robert Godin. Tous droits réservés JDBC n API standard pour JAVA n n Ensemble de classes n Besoin d ’installer un pilote JDBC dans l ’environnement JAVA

02/06/2015© Robert Godin. Tous droits réservés Architecture pour les pilotes JDBC

02/06/2015© Robert Godin. Tous droits réservés Chargement d'un pilote JDBC (DriverManager) et établissement d'une connexion (Connection) n Charger les pilotes JDBC d ’ Oracle – N.B. La librairie des pilotes Oracle doit être accessible à la machine virtuelle Java. Voir – Avec JDK 1.1 (problème avec bloc statique) utiliser : n DriverManager.registerDriver (new oracle.jdbc.driver.OracleDriver()); n Établir une connexion avec le pilote OCI8 pour un serveur Oracle local – OCI8 est un pilote de type 2 n Voir aussi interface javax.sql.DataSource (chap. 15) – package optionnel de JDBC 2 – meilleure transparence, plus grande versatilité – maintenant préférée à DriverManager – obligatoire avec J2EE

02/06/2015© Robert Godin. Tous droits réservés Création d ’un énoncé SQL (Statement)

02/06/2015© Robert Godin. Tous droits réservés Exécution d'une opération de mise à jour (INSERT, DELETE, UPDATE)

02/06/2015© Robert Godin. Tous droits réservés Exécution d'un SELECT (ResultSet)

02/06/2015© Robert Godin. Tous droits réservés ResultSet défilable (scrollable), modifiable (updatable), sensible (sensitive) - JDBC2

02/06/2015© Robert Godin. Tous droits réservés.43 ResultSet modifiable (updatable) mises à jour susceptibles d ’être vues pas le ResultSet

02/06/2015© Robert Godin. Tous droits réservés Support des types SQL:1999 sous JDBC 2

02/06/2015© Robert Godin. Tous droits réservés Exécution en lot (batch) sous JDBC 2

02/06/2015© Robert Godin. Tous droits réservés Gestion des transactions n Par défaut : auto-commit n Pour modifier n Pour un commit explicite : n Pour un rollback :

02/06/2015© Robert Godin. Tous droits réservés.47 Suite n Changer le niveau d ’isolation de défaut n Transactions réparties JDBC 2 – Java Transaction API (JTA) n interface UserTransaction – begin(), commit() – voir chap. 15

02/06/2015© Robert Godin. Tous droits réservés Gestion des exceptions n Mécanisme try/catch de JAVA

02/06/2015© Robert Godin. Tous droits réservés Utilisation de JDBC dans une applette Java n Déploiement avec le pilote thin n Contrainte de carré de sable n Exemple –

Exemple d ’applette avec pilote JDBC type 4 (thin)

02/06/2015© Robert Godin. Tous droits réservés Compilation et exécutions multiples avec la classe PreparedStatement n Compilation + exécution combinée au executeQuery n Compilation au prepareStatement n Compilation avec paramètres

02/06/2015© Robert Godin. Tous droits réservés Exécution d'une procédure ou fonction stockée (CallableStatement)

02/06/2015© Robert Godin. Tous droits réservés.53 Appel de procédure stockée

02/06/2015© Robert Godin. Tous droits réservés Accès aux méta- données (MetaData)

02/06/2015© Robert Godin. Tous droits réservés.55 DatabaseMetaData

02/06/2015© Robert Godin. Tous droits réservés SQLJ n Partie 0 de SQLJ – SQL enchâssée en Java n Partie 1 de SQLJ – Routines stockées n Partie 2 de SQLJ – Utilisation de classes Java en tant que types SQL

02/06/2015© Robert Godin. Tous droits réservés SQL enchâssé en Java (SQLJ : partie 0) n Ne vise que le statique n Traduit en JDBC n Peut combiner SQLJ et JDBC

02/06/2015© Robert Godin. Tous droits réservés.58 Variables partagées

02/06/2015© Robert Godin. Tous droits réservés CONTEXTE DE CONNEXION Contexte implicite

02/06/2015© Robert Godin. Tous droits réservés.60 Contexte explicite

02/06/2015© Robert Godin. Tous droits réservés.61 Commit explicite

02/06/2015© Robert Godin. Tous droits réservés SELECT QUI RETOURNE UN SINGLETON (CLAUSE INTO)

02/06/2015© Robert Godin. Tous droits réservés ITÉRATEUR DE RÉSULTAT SQLJ

02/06/2015© Robert Godin. Tous droits réservés.64 Mise-à-jour par itérateur

02/06/2015© Robert Godin. Tous droits réservés APPEL DE ROUTINES STOCKÉES EN SQLJ

02/06/2015© Robert Godin. Tous droits réservés INTEROPÉRABILITÉ AVEC JDBC n Création d'un contexte SQLJ à partir d'une Connection JDBC n Extraction de la Connection d'un contexte n Conversion d'un itérateur en un ResultSet JDBC n Conversion d'un ResultSet JDBC en un iterateur SQLJ

02/06/2015© Robert Godin. Tous droits réservés PROCESSUS DE TRADUCTION SQLJ

02/06/2015© Robert Godin. Tous droits réservés SQLJ partie 1: routines stokées en Java

02/06/2015© Robert Godin. Tous droits réservés.69 Déploiement Oracle n Charger le code dans un schéma n Publier sous forme de routine stockée : n Appeler la fonction en SQL