Interface de programmation Application / BD. Hiver 2011 C. Desrosiers

Save this PDF as:
 WORD  PNG  TXT  JPG

Dimension: px
Commencer à balayer dès la page:

Download "Interface de programmation Application / BD. Hiver 2011 C. Desrosiers"

Transcription

1 LOG660 - Bases de données de haute performance Interface de programmation Application / BD Hiver 2011 C. Desrosiers Département de génie logiciel et des TI

2 Interface entre SQL et un programme SQL incomplet Défaut d'impédance (impedance mismatch) modèle de données BD modèle de données du langage de programmation Département de génie logiciel et des TI R. Godin, C. Desrosiers - Hiver

3 Interface programmatique (Call-Level Interface - SQL/CLI) API spécifique au SGBD e.g. Oracle Call Interface (OCI) non portable API normalisée standard de facto ODBC développé par Microsoft pour le C pilote ODBC pour client/serveur SQL/CLI de SQL:1999 inspirée de ODBC JDBC pour Java Département de génie logiciel et des TI R. Godin, C. Desrosiers - Hiver

4 SQL enchâssé (Embedded SQL) Code SQL dans le source du langage hôte Syntaxe spéciale Pré-compilation Oracle : pro*c/c ++, pro*cobol,, SQLJ Moins portable pré-compilateur spécifique au SGBD traduit en API du SGBD SQLJ (partie 0) traduit en API standard JDBC Département de génie logiciel et des TI R. Godin, C. Desrosiers - Hiver

5 Extension procédurale à SQL (Persistent Stored Modules - SQL/PSM) SQL + structures de contrôle procédures, fonctions, packages support direct des types SQL pour les variables exécution au niveau serveur de BD Oracle PL/SQL Département de génie logiciel et des TI R. Godin, C. Desrosiers - Hiver

6 Bloc PL/SQL [DECLARE déclaration [déclaration]...] BEGIN séquenceenoncés [EXCEPTION exception_énoncé [exception_énoncé]...] END Département de génie logiciel et des TI R. Godin, C. Desrosiers - Hiver

7 Exécution d un bloc sous SQL*plus SQL> DECLARE 2 laquantitéenstock Article.quantitéEnStock%TYPE; 3 BEGIN 4 SELECT quantitéenstock INTO laquantitéenstock 5 FROM Article 6 WHERE noarticle = 10; 7 IF laquantitéenstock = 0 THEN 8 DBMS_OUTPUT.PUT_LINE('L article est en rupture de stock'); 9 ELSE 10 DBMS_OUTPUT.PUT('Quantité en stock :'); 11 DBMS_OUTPUT.PUT_LINE(laQuantitéEnStock); 12 END IF; 13 EXCEPTION 14 WHEN NO_DATA_FOUND THEN 15 DBMS_OUTPUT.PUT_LINE('Numéro d article inexistant'); 16 WHEN OTHERS THEN 17 RAISE_APPLICATION_ERROR(-20001,'Erreur soulevée par le SELECT'); 18 END; 19 / Quantité en stock :20 PL/SQL procedure successfully completed. Département de génie logiciel et des TI R. Godin, C. Desrosiers - Hiver

8 Déclaration de variables PL/SQL (DECLARE) lenoclient lenoclient Client.noClient%TYPE; INTEGER; Département de génie logiciel et des TI R. Godin, C. Desrosiers - Hiver

9 Transfert d'une valeur de colonne d'un SELECT dans une variable (clause INTO) SELECT INTO FROM WHERE noclient, datecommande lenoclient, ladatecommande Commande nocommande = lenocommande; Département de génie logiciel et des TI R. Godin, C. Desrosiers - Hiver

10 Affectation en PL/SQL laquantitéenattente:= laquantitécommandée -laquantitélivrée; Département de génie logiciel et des TI R. Godin, C. Desrosiers - Hiver

11 Structure de contrôle IF IF (laquantitélivrée IS NULL) THEN DBMS_OUTPUT.PUT_LINE(' livraison en attente'); ELSE laquantitéenattente:= laquantitécommandée -laquantitélivrée; IF (laquantitéenattente = 0) THEN DBMS_OUTPUT.PUT_LINE(' livraison complétée'); ELSE DBMS_OUTPUT.PUT (' quantité en attente :'); DBMS_OUTPUT.PUT_LINE(laQuantitéEnAttente); END IF ; END IF ; Département de génie logiciel et des TI R. Godin, C. Desrosiers - Hiver

12 Boucles (LOOP, FOR, WHILE) LOOP séquenceenoncés END LOOP ; FOR indice IN [REVERSE] valeurinitiale..valeurfinale LOOP séquenceenoncés END LOOP ; WHILE condition LOOP séquenceenoncés END LOOP ; Département de génie logiciel et des TI R. Godin, C. Desrosiers - Hiver

13 Traitement d'exception (EXCEPTION, RAISE) Déclarer Soulever Attraper nomexception RAISE nomexception WHEN nomexception THEN séquenceénoncés EXCEPTION; Département de génie logiciel et des TI R. Godin, C. Desrosiers - Hiver

14 Curseur PL/SQL (CURSOR) CURSOR lignescommande(unnocommande Commande.noCommande%TYPE)IS SELECT noarticle, quantité FROM LigneCommande WHERE LigneCommande.noCommande = unnocommande ; OPEN lignescommande(lenocommande); -- Le OPEN ouvre le CURSOR en lui passant les paramètres LOOP FETCH lignescommande INTO lenoarticle, laquantitécommandée; -- Le FETCH retourne la ligne suivante EXIT WHEN lignescommande%notfound; -- %NOTFOUND est un attribut du CURSOR qui permet de déterminer -- si le FETCH a atteint la fin de la table END LOOP; -- Le CLOSE ferme le CURSOR CLOSE lignescommande; Département de génie logiciel et des TI R. Godin, C. Desrosiers - Hiver

15 Boucle FOR pour curseur PL/SQL FOR uneligne IN lignescommande(lenocommande) LOOP DBMS_OUTPUT.PUT('noArticle :'); DBMS_OUTPUT.PUT(uneLigne.noArticle); DBMS_OUTPUT.PUT(' quantité commandée:'); DBMS_OUTPUT.PUT(uneLigne.quantité); -- Chercher la quantité déjà livrée SELECT SUM(quantitéLivrée) INTO laquantitélivrée FROM DétailLivraison WHERE noarticle = uneligne.noarticle AND nocommande = lenocommande ; IF (laquantitélivrée IS NULL) THEN DBMS_OUTPUT.PUT_LINE(' livraison en attente'); ELSE laquantitéenattente:= uneligne.quantité -laquantitélivrée; IF (laquantitéenattente = 0) THEN DBMS_OUTPUT.PUT_LINE(' livraison complétée'); ELSE DBMS_OUTPUT.PUT (' quantité en attente :'); DBMS_OUTPUT.PUT_LINE(laQuantitéEnAttente); END IF ; END IF ; END LOOP; Département de génie logiciel et des TI R. Godin, C. Desrosiers - Hiver

16 Procédures et fonctions PL/SQL stockées SQL> CREATE FUNCTION fquantitéenstock 2 (unnoarticle Article.noArticle%TYPE) 3 RETURN Article.quantitéEnStock%TYPE IS 4 5 unequantitéenstock Article.quantitéEnStock%TYPE; 6 BEGIN 7 SELECT quantitéenstock 8 INTO unequantitéenstock 9 FROM Article 10 WHERE noarticle = unnoarticle; 11 RETURN unequantitéenstock; 12 END fquantitéenstock; / Function created. SQL> select fquantitéenstock(10) from dual; FQUANTITÉENSTOCK(10) Département de génie logiciel et des TI R. Godin, C. Desrosiers - Hiver

17 Procédure stockée SQL> CREATE PROCEDURE pmodifierquantitéenstock 2 (unnoarticle Article.noArticle%TYPE, 3 nouvellequantitéenstock Article.quantitéEnStock%TYPE) IS 4 BEGIN 5 UPDATE Article 6 SET quantitéenstock = nouvellequantitéenstock 7 WHERE noarticle = unnoarticle; 8 END pmodifierquantitéenstock; 9 / Procedure created. SQL> EXECUTE pmodifierquantitéenstock(10,20); PL/SQL procedure successfully completed. SQL> SELECT * FROM Article WHERE noarticle = 10; NOARTICLE DESCRIPTION PRIXUNITAIRE QUANTITÉENSTOCK Cèdre en boule 10,99 20 Département de génie logiciel et des TI R. Godin, C. Desrosiers - Hiver

18 Privilèges dans une routine stockée Privilèges de l'appelant (invoker rights) CREATE PROCEDURE pmodifierquantitéenstock (unnoarticle Article.noArticle%TYPE, nouvellequantitéenstock Article.quantitéEnStock%TYPE) AUTHID CURRENT_USER IS BEGIN UPDATE Article SET quantitéenstock = nouvellequantitéenstock WHERE noarticle = unnoarticle; END pmodifierquantitéenstock; Privilèges de la routine (definer rights) privilèges du créateur par défaut Département de génie logiciel et des TI R. Godin, C. Desrosiers - Hiver

19 Exemple privilège de l appelant SQL> connect godin/oracle Connected. SQL> CREATE OR REPLACE PROCEDURE pmodifierquantitéenstock 2 (unnoarticle Article.noArticle%TYPE, 3 nouvellequantitéenstock Article.quantitéEnStock%TYPE) 4 AUTHID CURRENT_USER IS 5 BEGIN 6 UPDATE Article 7 SET quantitéenstock = nouvellequantitéenstock 8 WHERE noarticle = unnoarticle; 9 END pmodifierquantitéenstock; 10 / Procedure created. SQL> grant execute on pmodifierquantitéenstock to public; Grant succeeded. SQL> connect test/oracle Connected. SQL> EXECUTE godin.pmodifierquantitéenstock (10,500); PL/SQL procedure successfully completed. SQL> select * from article; NOARTICLE DESCRIPTION PRIXUNITAIRE QUANTITÉENSTOCK Cèdre en boule 10, Sapin 12,99 10 SQL> select * from godin.article; select * from godin.article * ERROR at line 1: ORA-00942: table or view does not exist Département de génie logiciel et des TI R. Godin, C. Desrosiers - Hiver

20 Exemple privilège du créateur SQL> connect godin/oracle Connected. SQL> CREATE OR REPLACE PROCEDURE pmodifierquantitéenstock 2 (unnoarticle Article.noArticle%TYPE, 3 nouvellequantitéenstock Article.quantitéEnStock%TYPE) 4 IS 5 BEGIN 6 UPDATE Article 7 SET quantitéenstock = nouvellequantitéenstock 8 WHERE noarticle = unnoarticle; 9 END pmodifierquantitéenstock; 10 / Procedure created. SQL> grant execute on pmodifierquantitéenstock to public; Grant succeeded. SQL> connect test/oracle Connected. SQL> EXECUTE godin.pmodifierquantitéenstock (10,700); PL/SQL procedure successfully completed. SQL> select * from article; NOARTICLE DESCRIPTION PRIXUNITAIRE QUANTITÉENSTOCK Cèdre en boule 10, Sapin 12,99 10 Département de génie logiciel et des TI R. Godin, C. Desrosiers - Hiver

21 Exemple privilège du créateur (suite) SQL> select * from godin.article; select * from godin.article * ERROR at line 1: ORA-00942: table or view does not exist SQL> connect godin/oracle Connected. SQL> select * from article; NOARTICLE DESCRIPTION PRIXUNITAIRE QUANTITÉENSTOCK Cèdre en boule 10, Sapin 12, Épinette bleue 25, Chêne 60 Érable argenté 22,99 15, Herbe à puce 80 Poirier 10,99 26, Catalpa 90 Pommier 25,99 25, Génévrier 15, rows selected. Département de génie logiciel et des TI R. Godin, C. Desrosiers - Hiver

22 Package PL/SQL CREATE PACKAGE nompaquetage AS listedessignaturesdesfonctions&procédures END nompaquetage ; CREATE PACKAGE BODY nompaquetage AS délaration [déclaration] BEGIN séquenceénoncésinitialisation END nompaquetage; nompaquetage.nomobjet Département de génie logiciel et des TI R. Godin, C. Desrosiers - Hiver

23 JDBC API standard pour JAVA Ensemble de classes Besoin d installer un pilote JDBC dans l environnement JAVA Département de génie logiciel et des TI R. Godin, C. Desrosiers - Hiver

24 Architecture pour les pilotes JDBC Application Java (import java.sql.*) API JDBC Type 1 Passerelle JDBC- ODBC Pilote ODBC (e.g. pilote ODBC Oracle) Type 2 Partie Java API client du SGBD (e.g. ocijdbc8.dll pour Oracle) Type 3 Pilote JDBC générique Type 4 Pilote JDBC tout Java (e.g. Oracle thin) Type? Oracle serverside thin et internal driver Serveur JDBC Serveur de BD Département de génie logiciel et des TI R. Godin, C. Desrosiers - Hiver

25 Chargement d'un pilote JDBC et établissement d'une connexion Charger les pilotes JDBC d Oracle Class.forName ("oracle.jdbc.driver.oracledriver"); Établir une connexion avec le pilote OCI8 pour un serveur Oracle local Connection uneconnection = DriverManager.getConnection "toto", "secret"); Département de génie logiciel et des TI R. Godin, C. Desrosiers - Hiver

26 Création d un énoncé SQL (Statement) Statement unenoncésql = uneconnection.createstatement (); <<Interface>> Statement executequery(arg0 : S tring) : ResultSet executeupdate(arg0 : St ring) : int close() : void getmaxfieldsize() : int setmaxfieldsize(arg0 : int) : void getmaxrows() : int setmaxrows(arg0 : int) : void setescapeprocessing(arg0 : boolean) : void getquerytimeout() : int setquerytimeout(arg0 : int) : void cancel() : void getw arnings() : SQLWarning clearwarnings() : void setcursorname(arg0 : String) : void execute(arg0 : String) : boolean getresultset() : ResultSet getupdatecount() : int getmoreresults() : boolean setfetchdirection(arg0 : int) : void getfet chdirection() : int setfetchsize(arg0 : int) : void getfetchsize() : int getresultsetconcurrency() : int getresultsettype() : int addbatch(arg0 : String) : void clearbatch() : void executebatch() : int[] getconnection() : Connection Département de génie logiciel et des TI R. Godin, C. Desrosiers - Hiver

27 Exécution d'une opération de mise à jour (INSERT, DELETE, UPDATE) import java.sql.*; class ClientInsertJDBC { public static void main (String args []) throws SQLException, ClassNotFoundException, java.io.ioexception { // Charger le pilote JDBC d'oracle Class.forName ("oracle.jdbc.driver.oracledriver"); // Connexion à une BD Connection uneconnection = DriverManager.getConnection "godin", "oracle"); // Création d'un énoncé associé à la Connection Statement unenoncésql = uneconnection.createstatement (); // Insertion d'une ligne dans la table Client int n = unenoncésql.executeupdate ("INSERT INTO CLIENT " + "VALUES (100, 'G. Lemoyne-Allaire', '911')"); System.out.println ("Nombre de lignes inserees:" + n); } } // Fermeture de l'énoncé et de la connexion unenoncésql.close(); uneconnection.close(); Département de génie logiciel et des TI R. Godin, C. Desrosiers - Hiver

28 Exécution d'un SELECT (ResultSet) Début analogue à l'exemple précédent // Création d'un énoncé associé à la Connexion Statement unenoncésql = uneconnection.createstatement(); // Exécution d'un SELECT ResultSet résultatselect = unenoncésql.executequery ("SELECT noclient, nomclient "+ "FROM CLIENT " + "WHERE noclient > 40"); // Itérer sur les lignes du résultat du SELECT et extraire les valeurs // des colonnes dans des variables JAVA } } while (résultatselect.next ()){ int noclient = résultatselect.getint ("noclient"); String nomclient = résultatselect.getstring ("nomclient"); System.out.println ("Numéro du client:" + noclient); System.out.println ("Nom du client:" + nomclient); } Département de génie logiciel et des TI R. Godin, C. Desrosiers - Hiver

29 Support des types SQL:1999 sous JDBC 2 CREATE TABLE tableblob ( idblob INTEGER PRIMARY KEY, imageblob) // Chercher le BLOB locator ResultSet unresultset = unenoncésql.executequery ("SELECT * FROM tableblob WHERE idblob = 1"); if (unresultset.next()){ int idblob = unresultset.getint(1); Blob unblob = unresultset.getblob(2); // Chercher la taille du BLOB et l'afficher int taille = (int)unblob.length(); System.out.println("Taille du BLOB" + taille); // Lire le BLOB dans un tableau d'octets byte octets[] = unblob.getbytes(1, taille); // Créer un fichier contenant les octets lus FileOutputStream unfichier = new FileOutputStream("C:/forte4j/Development/ExemplesJDBC/CopieCoq1.gif"); unfichier.write(octets); unfichier.close(); Département de génie logiciel et des TI R. Godin, C. Desrosiers - Hiver

30 Compilation et exécutions multiples avec la classe PreparedStatement Compilation + exécution combinée au executequery Statement unenoncésql = uneconnection.createstatement(); ResultSet résultatselect = unenoncésql.executequery ("SELECT noclient, nomclient "+ "FROM CLIENT " + "WHERE noclient > 40"); Compilation au preparestatement PreparedStatement unenoncésql = uneconnection.preparestatement ("SELECT noclient, nomclient "+ "FROM CLIENT " + "WHERE noclient > 40"); ResultSet résultatselect = unenoncésql.executequery(); Compilation avec paramètres PreparedStatement unenoncésql = uneconnection.preparestatement ("SELECT noclient, nomclient "+ "FROM CLIENT " + "WHERE noclient >?"); unenoncésql.setint(1,40); ResultSet résultatselect = unenoncésql.executequery(); Statement PreparedStatement CallableStatement Département de génie logiciel et des TI R. Godin, C. Desrosiers - Hiver

31 Exécution en lot (batch) sous JDBC 2 // Création d'un PreparedStatement associé à la Connection PreparedStatement unenoncésql = uneconnection.preparestatement ("INSERT INTO Client VALUES(?,?,?)"); // Ajout d'un INSERT dans le lot unenoncésql.setint(1,90); unenoncésql.setstring(2,"edgar Degas"); unenoncésql.setstring(3,"(222) "); unenoncésql.addbatch(); // Ajout d'un autre INSERT dans le lot unenoncésql.setint(1,100); unenoncésql.setstring(2,"claude Monet"); unenoncésql.setstring(3,"(111) "); unenoncésql.addbatch(); // Exécution du lot en un appel int [] résultats = unenoncésql.executebatch(); Département de génie logiciel et des TI R. Godin, C. Desrosiers - Hiver

32 Exécution d'une procédure ou fonction stockée (CallableStatement) // Création d'un appel de fonction associé à la Connection CallableStatement uncall = uneconnection.preparecall("{? = call fquantitéenstock(?)}"); // Spécification du paramètre d'entrée uncall.setint(2,10); // Inscription de la sortie uncall.registeroutparameter(1, java.sql.types.integer); // Exécution de l'appel uncall.execute(); // Récupération de la sortie int laquantite = uncall.getint(1); System.out.println("Quantité en stock :"+laquantite); }; uncall.close(); uneconnection.close(); Département de génie logiciel et des TI R. Godin, C. Desrosiers - Hiver

33 Appel de procédure stockée CallableStatement uncall = uneconnection.preparecall("{call pmodifierquantitéenstock(?,?)}"); // Spécification des paramètres d'entrée uncall.setint(1,10); uncall.setint(2,20); // Exécution de l'appel uncall.execute(); uncall.close(); uneconnection.close(); Département de génie logiciel et des TI R. Godin, C. Desrosiers - Hiver

34 Gestion des transactions Par défaut : auto-commit Pour modifier uneconnection.setautocommit(false); Pour un commit explicite : uneconnection.commit(); Pour un rollback : uneconnection.rollback(); Département de génie logiciel et des TI R. Godin, C. Desrosiers - Hiver

Cours Bases de données 2ème année IUT

Cours Bases de données 2ème année IUT Cours Bases de données 2ème année IUT Cours 6 : JDBC : ou comment lier ORACLE avec Java 1ère partie Anne Vilnat http://www.limsi.fr/individu/anne/cours Plan 1 Introduction 2 les étapes de la connexion

Plus en détail

Solutions des exercices du chapitre 6 selon la syntaxe du dialecte Oracle

Solutions des exercices du chapitre 6 selon la syntaxe du dialecte Oracle Solutions des exercices du chapitre 6 selon la syntaxe du dialecte Oracle 1. a Ajouter un CHECK sur la table LigneCommande ALTER TABLE LigneCommande ADD (CONSTRAINT XXX CHECK (noarticle

Plus en détail

PL/SQL. Pourquoi PL/SQL? Introduction. Principales caractéristiques de PL/SQL. Utilisation de PL/SQL

PL/SQL. Pourquoi PL/SQL? Introduction. Principales caractéristiques de PL/SQL. Utilisation de PL/SQL PL/SQL Avertissement : cette partie du cours n est qu un survol du langage PL/SQL, utile pour écrire des procédures stockées simples Elle laisse de côté de nombreuses fonctionnalités du langage Université

Plus en détail

Cours PL/SQL. Cours PL/SQL. E.Coquery. emmanuel.coquery@liris.cnrs.fr

Cours PL/SQL. Cours PL/SQL. E.Coquery. emmanuel.coquery@liris.cnrs.fr Cours PL/SQL E.Coquery emmanuel.coquery@liris.cnrs.fr Programmation au sein du SGBD Pourquoi? Les contraintes prédéfinies ne sont pas toujours suffisantes. Exemple : tout nouveau prix pour un CD doit avoir

Plus en détail

Interface Java Oracle : JDBC

Interface Java Oracle : JDBC Interface Java Oracle : JDBC Christine Bonnet Sommaire Démarche globale JDBC --- 6 Accès s en consultation --- 9 Accès s en modification --- 13 Ordres dynamiques --- 19 Procédures stockées --- 24 I-2 Christine

Plus en détail

Introduction à JDBC. Accès aux bases de données en Java

Introduction à JDBC. Accès aux bases de données en Java Introduction à JDBC Accès aux bases de données en Java Eric Cariou Université de Pau et des Pays de l'adour Département Informatique Eric.Cariou@univ-pau.fr 1 Introduction JDBC : Java Data Base Connectivity

Plus en détail

Java DataBaseConnectivity

Java DataBaseConnectivity Java DataBaseConnectivity JDBC JDBC est une API Java (ensemble de classes et d interfaces défini par SUN et les acteurs du domaine des SGBD) permettant d accéder aux bases de données à l aide du langage

Plus en détail

Synthèse PL SQL ORACLE. Declaration des variables, des constants, des exceptions et des curseurs.

Synthèse PL SQL ORACLE. Declaration des variables, des constants, des exceptions et des curseurs. Synthèse PL SQL ORACLE Bloc PL-SQL DECLARE Declaration des types, des variables, des constantes, des exceptions et des curseurs. BEGIN [nom du bloc] EXCEPTION Traitement des erreurs END [nom du bloc] Declaration

Plus en détail

Programmation orientée objet en langage JAVA

Programmation orientée objet en langage JAVA Programmation orientée objet en langage JAVA Connexion à une base de données avec JDBC Claude Duvallet Université du Havre UFR Sciences et Techniques 25 rue Philippe Lebon - BP 540 76058 LE HAVRE CEDEX

Plus en détail

Programmation orientée objet en langage JAVA

Programmation orientée objet en langage JAVA Connexion à une base de données avec JDBC Programmation orientée objet en langage JAVA Connexion à une base de données avec JDBC Claude Duvallet Université du Havre UFR Sciences et Techniques 25 rue Philippe

Plus en détail

Principes d'utilisation des systèmes de gestion de bases de données

Principes d'utilisation des systèmes de gestion de bases de données Principes d'utilisation des systèmes de gestion de bases de données JDBC L3 Informatique Emmanuel Waller, LRI, Orsay Université Paris Sud le mode programme JDBC JDBC : qu'est ce que c'est? Avantages? devant

Plus en détail

Programmation avec un L3G Interaction d une application utilisant les méthodes

Programmation avec un L3G Interaction d une application utilisant les méthodes Programmation avec un L3G Interaction d une application utilisant les méthodes André Gamache, professeur associé Département d'informatique et de génie logiciel Faculté des sciences et de génie Université

Plus en détail

Langage propre à Oracle basé sur ADA. Offre une extension procédurale à SQL

Langage propre à Oracle basé sur ADA. Offre une extension procédurale à SQL Cours PL/SQL Langage propre à Oracle basé sur ADA Offre une extension procédurale à SQL PL/SQL permet d utiliser un sous-ensemble du langage SQL des variables, des boucles, des alternatives, des gestions

Plus en détail

8. Java et les bases de données. Olivier Curé - UMLV [page 206 ]

8. Java et les bases de données. Olivier Curé - UMLV [page 206 ] 8. Java et les bases de données Olivier Curé - UMLV [page 206 ] Java et les BD Plusieurs manières d'écrire du code Java accédant à une BD: Statement Level Interface (SLI) Solutions : SQLJ (SQL92) Call

Plus en détail

Java et les bases de données: JDBC: Java DataBase Connectivity SQLJ: Embedded SQL in Java. Michel Bonjour http://cuiwww.unige.

Java et les bases de données: JDBC: Java DataBase Connectivity SQLJ: Embedded SQL in Java. Michel Bonjour http://cuiwww.unige. : JDBC: Java DataBase Connectivity SQLJ: Embedded SQL in Java Michel Bonjour http://cuiwww.unige.ch/~bonjour Plan JDBC: API bas niveau pour l accès aux BD (SQL) - Introduction - JDBC et : Java, ODBC, SQL

Plus en détail

Bases de données avancées Triggers

Bases de données avancées Triggers Bases de données avancées Triggers Wies law Zielonka 12 décembre 2009 Résumé Ces notes ne sont pas corrigées, mais peut-être vous les trouverez quand même utiles pour préparer l examen ou projet. Ne pas

Plus en détail

Cours Bases de données 2ème année IUT

Cours Bases de données 2ème année IUT Cours Bases de données 2ème année IUT Cours 4 : PL/SQL : ou comment faire plus avec ORACLE 2ème partie Anne Vilnat http://www.limsi.fr/individu/anne/cours Plan 1 Exceptions Rappels bloc PL/SQL Definition

Plus en détail

Bases de données Programmation PL/SQL. LP TOSPI, IUT Montluçon, Université Blaise Pascal 2010-2011 Laurent d Orazio

Bases de données Programmation PL/SQL. LP TOSPI, IUT Montluçon, Université Blaise Pascal 2010-2011 Laurent d Orazio Bases de données Programmation PL/SQL LP TOSPI, IUT Montluçon, Université Blaise Pascal 2010-2011 Laurent d Orazio Plan I. Vue d ensemble et principes de fonctionnement II. Eléments de programmation III.

Plus en détail

Présentation Etapes dans le traitement d une requête d accès aux. Exemple. Contact: nadiri@najasoft.com (Décembre 2005)

Présentation Etapes dans le traitement d une requête d accès aux. Exemple. Contact: nadiri@najasoft.com (Décembre 2005) JDBC API Présentation Etapes dans le traitement d une requête d accès aux données JDBC. Exemple Contact: nadiri@najasoft.com (Décembre 2005) Présentation L API JDBC est composée de deux Packages java.sql

Plus en détail

Cours Bases de données 2ème année IUT

Cours Bases de données 2ème année IUT Cours Bases de données 2ème année IUT Cours 8 : JDBC : ou comment lier ORACLE avec Java 3ème partie Anne Vilnat http://www.limsi.fr/individu/anne/cours Plan 1 Appel aux procédures et aux fonctions stockées

Plus en détail

Oracle : Langage PL/SQL

Oracle : Langage PL/SQL 1 Introduction à PL/SQL Oracle : Langage PL/SQL PL/SQL est un langage de programmation procédural et structuré. 1.1 Langage de programmation Il contient un ensemble d'instructions permettant de mettre

Plus en détail

BD50. TP5 : Développement PL/SQL Avec Oracle SQL Developer. Gestion Commerciale

BD50. TP5 : Développement PL/SQL Avec Oracle SQL Developer. Gestion Commerciale Département Génie Informatique BD50 TP5 : Développement PL/SQL Avec Oracle SQL Developer Gestion Commerciale Françoise HOUBERDON & Christian FISCHER Copyright Avril 2007 Présentation de la gestion commerciale

Plus en détail

PL/SQL INTRODUCTION Introduction à PL/SQ Les procédures, les fonctions et les packages Les triggers

PL/SQL INTRODUCTION Introduction à PL/SQ Les procédures, les fonctions et les packages Les triggers PL/SQL INTRODUCTION Introduction à PL/SQ Les procédures, les fonctions et les packages Les triggers Département d informatique Collège Lionel Groulx. Préparé par Saliha Yacoub Table des matières. Introduction...

Plus en détail

Java et les bases de données

Java et les bases de données Java et les bases de données Introduction Application Java? Base de données Besoin d'un framework permettant l'accès aux bases de données (SQL) dans un programme Java : - Indépendamment du type de la base

Plus en détail

2013-2014 N.EL FADDOULI 39 2013-2014 N.EL FADDOULI 40. Page 2

2013-2014 N.EL FADDOULI 39 2013-2014 N.EL FADDOULI 40. Page 2 Introduction Bloc PL/SQL Déclaration des variable Structure de contrôle Curseurs Les exceptions PL /SQL Les fonctions et procédures Les packages Les triggers 1 Les exceptions Définition Exceptions prédéfinies

Plus en détail

PL/SQL : procédures et déclencheurs. Grégory Bonnet, AI Mouaddib Département Informatique Université de Caen

PL/SQL : procédures et déclencheurs. Grégory Bonnet, AI Mouaddib Département Informatique Université de Caen PL/SQL : procédures et déclencheurs Grégory Bonnet, AI Mouaddib Département Informatique Université de Caen Introduction Introduction générale Étendre SQL pour l aide à la décision Nombreuses formes du

Plus en détail

Cours Bases de données 2ème année IUT

Cours Bases de données 2ème année IUT Cours Bases de données 2ème année IUT Cours 5 : PL/SQL : ou comment faire plus avec ORACLE 3ème partie Anne Vilnat http://www.limsi.fr/individu/anne/cours Plan 1 Curseurs et mise à jour 2 Paquetages Definition

Plus en détail

Les procédures fonctions packages et triggers

Les procédures fonctions packages et triggers Les procédures fonctions packages et triggers Les procédures stockées: Définition: Une procédure est un code PL/SQL défini par l utilisateur et stocké dans la base de données. Ce qui permet d éliminer

Plus en détail

Si le médecin agit en situation d urgence, insérer une trace de ses requêtes. Si le patient est cardiaque, le préciser dans le motif de la visite

Si le médecin agit en situation d urgence, insérer une trace de ses requêtes. Si le patient est cardiaque, le préciser dans le motif de la visite Précompilateur Compilateur LP PROGRAMMATION SQL Limites de SQL Problématique de la connexion langage hôte/sql 3 approches Embedded SQL (PRO*C, SQLJ ) API de bas niveau (SQL-CLI, ODBC, ) Langage dédié (PL/SQL,

Plus en détail

Programmer avec PL/SQL

Programmer avec PL/SQL Programmer avec PL/SQL École Supérieure de la Statistique et de l Analyse de l Information (ESSAI) Avertissement : cette partie du cours n est qu un survol du langage PL/SQL, utile pour écrire des procédures

Plus en détail

Interface SQL-Langages hôtes. Interface SQL-Langages hôtes. Java DataBases Connectivity JDBC Hala Skaf-Molli Skaf@loria.fr www.loria.

Interface SQL-Langages hôtes. Interface SQL-Langages hôtes. Java DataBases Connectivity JDBC Hala Skaf-Molli Skaf@loria.fr www.loria. Interface SQL-Langages hôtes Interface SQL-Langages hôtes Java DataBases Connectivity JDBC Hala Skaf-Molli Skaf@loria.fr www.loria.fr/~skaf Pourquoi? Comment? Interface SQL-Langages hôtes Pourquoi? SQL

Plus en détail

625 Programmation JDBC INTRODUCTION ARCHITECTURES

625 Programmation JDBC INTRODUCTION ARCHITECTURES 625 Programmation JDBC INTRODUCTION API (Framework) permettant d'accéder virtuellement à toute source de données tabulaire ; respecte la philosophie de la plate-forme Java: Write once, run everywhere ;

Plus en détail

On peut considérer les vues comme des «tables virtuelles» : leur contenu est constitué seulement au moment de la demande d exécution de cette vue.

On peut considérer les vues comme des «tables virtuelles» : leur contenu est constitué seulement au moment de la demande d exécution de cette vue. SQL Ch 9 DDL Vues, PL/SQL, procédures,... I. INTRODUCTION... 1 II. LES VUES (ANGLAIS «VIEWS»)... 1 A. CREER UNE VUE : CREATE VIEW... 1 B. SUPPRIMER UNE VUE DROP VIEW... 3 III. LANGAGE PL/SQL, PROCEDURES

Plus en détail

Erreur «Mutating Table»

Erreur «Mutating Table» TRIGGER Programmation avancée H.LUU SES Université de Genève H.Luu - Base de données - Eté 2002 Erreur «Mutating Table» Définition : Une table est en état «mutating» si elle est en train d être modifiée

Plus en détail

625 Programmation JDBC LES PRINCIPALES CLASSES ET LEUR EMPLOI INTRODUCTION ARCHITECTURES. Connection. Statement instruction

625 Programmation JDBC LES PRINCIPALES CLASSES ET LEUR EMPLOI INTRODUCTION ARCHITECTURES. Connection. Statement instruction 625 Programmation INTRODUCTION JDBC API (Framework) permettant d'accéder virtuellement à toute source de données tabulaire ; respecte la philosophie de la plate-forme Java: Write once, run everywhere ;

Plus en détail

420-PK6-SL Banques de données Avancées. la suite

420-PK6-SL Banques de données Avancées. la suite 420-PK6-SL Banques de données Avancées PL/SQL la suite ENTRÉES AU CLAVIER Pour quérir une valeur au clavier lors de l'exécution d'une fonction SqlPlusfournis l'opérateur «&». PL/SQL n'a pas de mécanisme

Plus en détail

Université M Hamed Bougara Boumerdès, Faculté des Sciences, Département Informatique SQL PROCEDURAL

Université M Hamed Bougara Boumerdès, Faculté des Sciences, Département Informatique SQL PROCEDURAL Université M Hamed Bougara Boumerdès, Faculté des Sciences, Département Informatique Cours (Master 1) : Bases de Données Avancées, (Responsable : A. AIT BOUZIAD) SQL PROCEDURAL Dans les différentes parties

Plus en détail

JDBC et objet-relationnel

JDBC et objet-relationnel Types de données de SQL3 JDBC et objet-relationnel Université de Nice - Sophia Antipolis Version 1.6.4 5/11/11 Richard Grin JDBC supporte les types suivants de SQL3 qui sont des ouvertures vers le relationnelobjet

Plus en détail

Conception de bases de données relationnelles

Conception de bases de données relationnelles Conception de bases de données relationnelles Langage PL/(pg)SQL Marie Szafranski 2015-2016 ensiie 1 2015-2016 ensiie 1 Aperçu de PL/(pg)SQL Aperçu de PL/(pg)SQL PL/SQL : Procedural Language for SQL (Oracle)

Plus en détail

Interfaçage de programmation. c Olivier Caron

Interfaçage de programmation. c Olivier Caron Interfaçage de programmation 1 Le SGBD est-il suffisant? (1/2) Les pour : La puissance du langage de requêtes. 1 Le SGBD est-il suffisant? (1/2) Les pour : La puissance du langage de requêtes. L aspect

Plus en détail

JDBC. Daniel Tschirhart : Programmation Java V1.35 1.1

JDBC. Daniel Tschirhart : Programmation Java V1.35 1.1 JDBC Daniel Tschirhart : Programmation Java V1.35 1.1 JDBC JDBC est l'acronyme de Java DataBase Connectivity et désigne une API définie par Sun pour permettre un accès aux bases de données avec Java Accès

Plus en détail

Oracle 8i sous Linux

Oracle 8i sous Linux Oracle 8i sous Linux Gilles Briard Éditions Eyrolles ISBN : 2-212-09135-4 2000 16 Pilotes JDBC et SQLJ Dans ce chapitre nous allons aborder les points suivants : le standard JDBC, les pilotes JDBC d Oracle,

Plus en détail

07/02/2011 (SQL/PSM) MySQL SQL/PSM. Application. Bloc SQL/PSM SQL SQL SQL SQL SQL IF... THEN SQL ELSE SQL END IF ; SQL

07/02/2011 (SQL/PSM) MySQL SQL/PSM. Application. Bloc SQL/PSM SQL SQL SQL SQL SQL IF... THEN SQL ELSE SQL END IF ; SQL (SQL/PSM) 1 Extension de SQL ( PSM ) Langage de programmation procédural Clauses SQL intégrées dans le code procédural SQL/PSM est donc un langage de programmation, propre à mysql : Intégre directement

Plus en détail

Architectures n-tiers et applications Web Outils Java et applications Web Servlets État d un servlet Les JSP Accès aux BD avec servlets Conception

Architectures n-tiers et applications Web Outils Java et applications Web Servlets État d un servlet Les JSP Accès aux BD avec servlets Conception Plan 231 Architectures n-tiers et applications Web Outils Java et applications Web Servlets État d un servlet Les JSP Accès aux BD avec servlets Conception JDBC - Rappels 232 JDBC: API qui permet de stocker,

Plus en détail

Les Exceptions. Rappel : Répondre par vrai ou faux Un curseur est une zone mémoire dans laquelle une commande SQL est analysée et exécutée

Les Exceptions. Rappel : Répondre par vrai ou faux Un curseur est une zone mémoire dans laquelle une commande SQL est analysée et exécutée Rappel : Répondre par vrai ou faux Un curseur est une zone mémoire dans laquelle une commande SQL est analysée et exécutée Un curseur implicite est toujours une commande select Une curseur explicite ne

Plus en détail

SQL et Langages de Programmation

SQL et Langages de Programmation SQL et Langages de Programmation SQL est un langage bases de données autonome. Langage ensembliste de haut niveau Il faut un langage de programmation, pour programmer des applications de gestion o Notion

Plus en détail

Programmation d application Bases de données avec Java

Programmation d application Bases de données avec Java Plan du document Programmation d application Bases de données avec Java INT Problématique slide 3 Correspondance diagramme de classe slide 4 UML vers schéma relationnel Programmation BD avec JDBC slide

Plus en détail

Cours 3. Développement d une application BD. DBA - Maîtrise ASR - Université Evry

Cours 3. Développement d une application BD. DBA - Maîtrise ASR - Université Evry Cours 3 Développement d une application BD 1 Plan du cours Gestion de la sécurité des données Optimisation des schémas de bases via la dénormalisation Utilisation de vues Placement du code applicatif dans

Plus en détail

Développer en PL/SQL. Sommaire du cours

Développer en PL/SQL. Sommaire du cours Sommaire du cours Module 1 Introduction et Rappels Module 2 Eléments de langage PL/SQL Module 3 Accès à la Base de données Module 4 Traitements stockés Module 5 Gestion des exceptions Module 6 - Compléments

Plus en détail

Le langage PL/SQL 2 - Compléments

Le langage PL/SQL 2 - Compléments 1. Rappels de PL/SQL 2. Les Exceptions Le langage PL/SQL 2 - Compléments Bernard ESPINASSE Professeur à Aix-Marseille Université (AMU) Ecole Polytechnique Universitaire de Marseille Septembre 2015 3. Les

Plus en détail

Paradigme relationnel-objet. Hiver 2011 C. Desrosiers

Paradigme relationnel-objet. Hiver 2011 C. Desrosiers LOG660 - Bases de données de haute performance Paradigme relationnel-objet Hiver 2011 C. Desrosiers Département de génie logiciel et des TI Le modèle relationnel-objet (OR Ajoute quelques notions au modèle

Plus en détail

Les Triggers SQL. Didier DONSEZ. Université de Valenciennes Institut des Sciences et Techniques de Valenciennes donsez@univ-valenciennes.

Les Triggers SQL. Didier DONSEZ. Université de Valenciennes Institut des Sciences et Techniques de Valenciennes donsez@univ-valenciennes. Les Triggers SQL Didier DONSEZ Université de Valenciennes Institut des Sciences et Techniques de Valenciennes donsez@univ-valenciennes.fr 1 Sommaire Motivations Trigger Ordre Trigger Ligne Condition Trigger

Plus en détail

Les déclencheurs (Triggers) avec Oracle

Les déclencheurs (Triggers) avec Oracle 1) Introduction 2) Événements déclenchant 3) Mécanisme général 4) Privilèges systèmes 5) Syntaxe 6) Nom du déclencheur 7) Option BEFORE ou AFTER 8) Déclencheur LMD 9) Déclencheur LDD 10) Déclencheur d'instance

Plus en détail

Auto-évaluation La programmation database en JDBC

Auto-évaluation La programmation database en JDBC Auto-évaluation La programmation database en JDBC Document: f1216test.fm 02/04/2012 ABIS Training & Consulting P.O. Box 220 B-3000 Leuven Belgium TRAINING & CONSULTING INTRODUCTION AUTO-ÉVALUATION LA PROGRAMMATION

Plus en détail

Tp2 Emacs Développement Web

Tp2 Emacs Développement Web Tp2 Emacs Développement Web Les indications ci-dessous donnent les grandes lignes du développement. 1/ Evenement Ajax Jquery: Le code javascript jquery suivant permet d afficher un message dans un span

Plus en détail

Jean-Michel Richer jean-michel.richer@univ-angers.fr http://www.info.univ-angers.fr/pub/richer. L3 Pro Informatique 2010-2011

Jean-Michel Richer jean-michel.richer@univ-angers.fr http://www.info.univ-angers.fr/pub/richer. L3 Pro Informatique 2010-2011 1 / 32 Développement Web - JDBC Jean-Michel Richer jean-michel.richer@univ-angers.fr http://www.info.univ-angers.fr/pub/richer L3 Pro Informatique 2010-2011 2 / 32 Plan Plan 1 Préambule 2 Utilisation de

Plus en détail

SGBD-PL\SQL (Procedural Language / Structured Query Language)

SGBD-PL\SQL (Procedural Language / Structured Query Language) SGBD-PL\SQL (Procedural Language / Structured Query Language) Chapitre 6 : Les sous programmes stockés et les packages Faîçal Felhi felhi_fayssal@yahoo.fr Introduction La différence entre une procédure

Plus en détail

1/44. I Programming Language with SQL. I Langage de programmation procédural ADA like. I Langage propriétaire mais qui a inspiré la norme SQL3

1/44. I Programming Language with SQL. I Langage de programmation procédural ADA like. I Langage propriétaire mais qui a inspiré la norme SQL3 Généralités 1/44 2/44 Anne-Cécile Caron Présentation Programming Language with SQL Langage de programmation procédural ADA like Langage propriétaire mais qui a inspiré la norme SQL3 Adapté à la manipulation

Plus en détail

PL/SQL Procedural Language Extensions to SQL

PL/SQL Procedural Language Extensions to SQL PL/SQL Procedural Language Extensions to SQL Il permet : - l'utilisation d'un sous-ensemble du langage SQL, - la mise en œuvre de structures procédurales, - la gestion des erreurs. L'une des plus importantes

Plus en détail

MySQL 5 (versions 5.1 à 5.6) Guide de référence du développeur (Nouvelle édition)

MySQL 5 (versions 5.1 à 5.6) Guide de référence du développeur (Nouvelle édition) Avant-propos 1. Les objectifs de ce livre 13 2. Les principaux sujets qu'aborde ce livre 13 3. À qui s adresse ce livre? 14 4. Les pré-requis 14 Introduction à MySQL 1. Introduction aux bases de données

Plus en détail

Accès aux bases de données

Accès aux bases de données 13 Accès aux bases de données Les bases de données fournissent un mécanisme de stockage persistant pour les données d application et dans bien des cas, elles sont essentielles au fonctionnement des applications.

Plus en détail

TD BD dynamique. DECLARE déclaration des variables, constantes, exceptions et curseurs locaux au bloc

TD BD dynamique. DECLARE déclaration des variables, constantes, exceptions et curseurs locaux au bloc TD BD dynamique Un déclencheur est utilisé pour complémenter les contraintes d'intégrité de la base. Une partie des contraintes ne peut souvent pas être définie avec les fonctionnalités décrites jusqu'ici.

Plus en détail

Java et les bases de données

Java et les bases de données Michel Bonjour http://cuiwww.unige.ch/~bonjour CENTRE UNIVERSITAIRE D INFORMATIQUE UNIVERSITE DE GENEVE Plan Introduction JDBC: API SQL pour Java - JDBC, Java, ODBC, SQL - Architecture, interfaces, exemples

Plus en détail

Module Administration BD Chapitre 1 : Surcouche procédurale dans les SGBDS

Module Administration BD Chapitre 1 : Surcouche procédurale dans les SGBDS Module Administration BD Chapitre 1 : Surcouche procédurale dans les SGBDS 1. Introduction Nous allons aborder la notion de surcouche procédurale au sein des SGBDS relationnels tels que Oracle (PLSQL)

Plus en détail

N.EL FADDOULI N.EL FADDOULI. Page 1

N.EL FADDOULI N.EL FADDOULI. Page 1 Introduction Bloc PL/SQL Déclaration des variable Structure de contrôle Curseurs Les exceptions PL /SQL Les fonctions et procédures Les packages Les triggers 1 Procédure, Fonction et Package Définition

Plus en détail

Mostafa Hanoune. Interactions avec le Serveur Oracle

Mostafa Hanoune. Interactions avec le Serveur Oracle 3 Interactions avec le Serveur Oracle Objectifs A la fin de ce chapitre, vous saurez : Ecrire une instruction SELECT en PL/SQL Déclarer le type de données et la taille d une variable PL/SQL dynamiquement

Plus en détail

420-PK6-SL Banques de données Avancées PL/SQL

420-PK6-SL Banques de données Avancées PL/SQL 420-PK6-SL Banques de données Avancées PL/SQL DÉFINITION PL/SQL : un langage de programmation il s'exécute dans l'environnement d'oracle il agit sur les objets du schéma Son but : Automatiser des tâches

Plus en détail

Maintenir les contraintes d'intégrité

Maintenir les contraintes d'intégrité Maintenir les contraintes d'intégrité Contraintes d'intégrité Plusieurs possibilités pour les maintenir: Dans les définitions des tables Triggers Utilisation de vues et des contraintes sur les vues With

Plus en détail

Application BdD et JDBC. Introduction 1/28. I Dans tout les cas, une seule problématique. I Quelques alternatives :

Application BdD et JDBC. Introduction 1/28. I Dans tout les cas, une seule problématique. I Quelques alternatives : ntroduction 1/28 2/28 Anne-Cécile Caron Licence MAGE - Bases de Données 2013-2014 Application base de données Pour le développeur : Quel est l environnement? type de client (mode client serveur, intranet,...)

Plus en détail

CC30 Certificat de compétence Conception, développement et animation de sites Web

CC30 Certificat de compétence Conception, développement et animation de sites Web CC30 Certificat de compétence Conception, développement et animation de sites Web UE RSX053 Introduction aux bases de données Séance 9 1 Table des matières 1. PLSQL...3 1.1. Présentation...3 1.2. L utilité

Plus en détail

Fondements des bases de données Programmation en PL/SQL Oracle (1/2)

Fondements des bases de données Programmation en PL/SQL Oracle (1/2) Fondements des bases de données Programmation en PL/SQL Oracle (1/2) Équipe pédagogique BD romuald.thion@univ-lyon1.fr http://liris.cnrs.fr/~rthion/dokuwiki/enseignement:lif10/ Version du 12 février 2014

Plus en détail

Oracle Database: Program with PL/SQL

Oracle Database: Program with PL/SQL Description Ce cours est une introduction à la technologie de base de données d'oracle Database 11g. Il explique aux stagiaires les concepts liés aux bases de données relationnelles. Il leur présente également

Plus en détail

A.E.C. GESTION DES APPLICATIONS TECHNOLOGIE DE L'INFORMATION LEA.BW

A.E.C. GESTION DES APPLICATIONS TECHNOLOGIE DE L'INFORMATION LEA.BW A.E.C. GESTION DES APPLICATIONS TECHNOLOGIE DE L'INFORMATION LEA.BW Groupe : 322 Exploitation des Banques de données 420-PK6-SL (1-2-1) Étape : 3 Professeur Nom: Marcel Aubin Courriel : maubin@cegep-st-laurent.qc.ca

Plus en détail

PL/ SQL. Introduction:

PL/ SQL. Introduction: PL/ SQL Introduction: PL/SQL (Procedural Language SQL) est un langage procedural structuré en BLOCS. Extension du SQL: des requêtes SQL intégrées avec les structures de contrôle habituelles (alternatives,

Plus en détail

Accès aux bases de données. Introduction à JDBC

Accès aux bases de données. Introduction à JDBC .doc Accès aux bases de données 1. QUELQUES DEFINITIONS... 2 2. LA CONNEXION... 4 3. EXECUTION ET CONTROLE D'UNE COMMANDE SQL... 6 3.1 Exécution des commandes SQL figées... 6 3.2 Exécution d'une requête

Plus en détail

OpenPaaS Le réseau social d'entreprise

OpenPaaS Le réseau social d'entreprise OpenPaaS Le réseau social d'entreprise Spécification des API datastore SP L2.3.1 Diffusion : Institut MinesTélécom, Télécom SudParis 1 / 12 1OpenPaaS DataBase API : ODBAPI...3 1.1Comparaison des concepts...3

Plus en détail

PHP OO et Pear DB. Olivier Perrin IUT Nancy-Charlemagne Département Informatique Université Nancy 2. Olivier.Perrin@loria.fr

PHP OO et Pear DB. Olivier Perrin IUT Nancy-Charlemagne Département Informatique Université Nancy 2. Olivier.Perrin@loria.fr PHP OO et Pear DB Olivier Perrin IUT Nancy-Charlemagne Département Informatique Université Nancy 2 Olivier.Perrin@loria.fr Classes et objets en PHP Une classe PHP regroupe des variables d instance, représentés

Plus en détail

TP Programmation Java / JDBC / Oracle

TP Programmation Java / JDBC / Oracle TP Programmation Java / JDBC / Oracle 1. Connectivité avec une base de données Oracle au travers de l interface JDBC L interface de programmation (API) JDBC (Java DataBase Connectivity) est une librairie

Plus en détail

1/28 XML. I XML = extensible markup language. I Langage de description de documents (semi)-structurés, utilisant des.

1/28 XML. I XML = extensible markup language. I Langage de description de documents (semi)-structurés, utilisant des. 1/28 2/28 Anne-Cécile Caron Master MIAGE - BDA 1er trimestre 2013-2014 XML I XML = extensible markup language I Langage de description de documents (semi-structurés, utilisant des balises

Plus en détail

2008-2009 -JACQUES THOORENS - HTTP://WWW.THOORENS.NET. Quatrième partie. Focus sur Oracle

2008-2009 -JACQUES THOORENS - HTTP://WWW.THOORENS.NET. Quatrième partie. Focus sur Oracle 2008-2009 -JACQUES THOORENS - HTTP://WWW.THOORENS.NET Quatrième partie Focus sur Oracle 165 2008-2009 -JACQUES THOORENS - HTTP://WWW.THOORENS.NET Chapitre 12 Programmation PL/SQL 2008-2009 -JACQUES THOORENS

Plus en détail

Tableau 7-27 Déclencheur avant insertion. Tableau 7-28 Test du déclencheur

Tableau 7-27 Déclencheur avant insertion. Tableau 7-28 Test du déclencheur chapitre n 7 Programmation avancée Chaque enregistrement qui tente d être ajouté dans la table Qualifications est désigné par :NEW au niveau du code du déclencheur. L accès aux colonnes de ce pseudo-enregistrement

Plus en détail

2. L'envoi de requêtes SQL au SGBD, à partir du programme java: création de tables, sélection de données,

2. L'envoi de requêtes SQL au SGBD, à partir du programme java: création de tables, sélection de données, Introduction à JDBC Introduction JDBC, Java Data Base Connectivity est un ensemble de classes (API Application Programming Interface --JAVA) permettant de se connecter à une base de données relationnelle

Plus en détail

Bases de données avancées

Bases de données avancées Bases de données avancées Jean-Yves Antoine LI - Université François Rabelais de Tours Jean-Yves.Antoine@univ-tours.fr UFR Sciences et Techniques IUP SIR Blois Master 1 Bases de Données avancées IUP Blois,

Plus en détail

Bases de Données relationnelles et leurs systèmes de Gestion

Bases de Données relationnelles et leurs systèmes de Gestion III.1- Définition de schémas Bases de Données relationnelles et leurs systèmes de Gestion RAPPELS Contraintes d intégrité sous Oracle Notion de vue Typage des attributs Contrainte d intégrité Intra-relation

Plus en détail

Oracle Database 10g: Les fondamentaux des langages SQL et PL/SQL

Oracle Database 10g: Les fondamentaux des langages SQL et PL/SQL Oracle University Appelez-nous: +33 (0) 1 57 60 20 81 Oracle Database 10g: Les fondamentaux des langages SQL et PL/SQL Durée: 5 Jours Description Ce cours s'adresse aux utilisateurs d'oracle8i, Oracle9i

Plus en détail

PHP /MySQL Interface d'accès aux BDDs PDO. Youssef CHAHIR

PHP /MySQL Interface d'accès aux BDDs PDO. Youssef CHAHIR PHP /MySQL Interface d'accès aux BDDs PDO Youssef CHAHIR 1 PLAN Architecture Créer une interface PHP/MySQL : Établir une connexion Exécuter une requête Gérer les erreurs Exploiter les résultats de la requête

Plus en détail

Java DataBase Connections

Java DataBase Connections Java DataBase Connections JDBC est une api permettant l'utilisation de bases de données indépendamment du type de SGBD utilisé. Il suffit d'indiquer le driver correspondant au gestionnaire de bases de

Plus en détail

Oracle Database 11g : Les fondamentaux des langages SQL et PL/SQL

Oracle Database 11g : Les fondamentaux des langages SQL et PL/SQL Oracle University Appelez-nous: +33 (0) 1 57 60 20 81 Oracle Database 11g : Les fondamentaux des langages SQL et PL/SQL Durée: 5 Jours Description Ce cours vous permettra d acquérir les principes fondamentaux

Plus en détail

Fondements des bases de données

Fondements des bases de données Fondements des bases de données Programmation en PL/SQL Oracle http://liris.cnrs.fr/~mplantev/doku/doku.php?id=lif10 marc.plantevit@liris.cnrs.fr 1 / 55 1 Langage PL/SQL 2 Commandes 3 Curseurs 4 Les exceptions

Plus en détail

Mapping Objet/Relationnel

Mapping Objet/Relationnel Mapping Objet/Relationnel I. Mougenot (isabelle.mougenot@univ-montp2.fr) Faculté des Sciences Université Montpellier 2 2014 Mougenot (UM2) FMIN362 Cours2 2014 1 / 14 Les limites du relationnel 1 Première

Plus en détail

Mise en œuvre du langage PL.SQL

Mise en œuvre du langage PL.SQL Mise en œuvre du langage PL.SQL Il est possible avec RCITools Oracle/Excel de soumettre des ordres PL.SQL. L utilisation conjointe de cette possibilité avec celle de lire et d écrire très facilement des

Plus en détail

Cours Bases de données 2ème année IUT

Cours Bases de données 2ème année IUT Cours Bases de données 2ème année IUT Cours Bilan : Des vues à PL/SQL corrigé Anne Vilnat http://www.limsi.fr/individu/anne/cours Plan 1 Cas exemple 2 Les tables... 3 Vues et index 4 Privilèges 5 Fonctions

Plus en détail

Introduction à PL/SQL. Patricia Serrano Alvarado à partir des slides de Sylvie Cazalens

Introduction à PL/SQL. Patricia Serrano Alvarado à partir des slides de Sylvie Cazalens Introduction à PL/SQL Patricia Serrano Alvarado à partir des slides de Sylvie Cazalens PL/SQL : what for? SQL langage puissant mais limité Plusieurs processus logiques des applications implémentés au niveau

Plus en détail

Présentation du PL/SQL

Présentation du PL/SQL I Présentation du PL/ Copyright Oracle Corporation, 1998. All rights reserved. Objectifs du Cours A la fin de ce chapitre, vous saurez : Décrire l intéret du PL/ Décrire l utilisation du PL/ pour le développeur

Plus en détail

BASE DE DONNÉES T.P.1 SQL3

BASE DE DONNÉES T.P.1 SQL3 Faculté des Sciences et Techniques Année Universitaire 2005-2006 Master 1 Informatique BASE DE DONNÉES T.P.1 SQL3 DEZE Simon DAUVERGNE Sébastien 1 Introduction Ce TP constitué de deux exercices vise à

Plus en détail

Mostafa Hanoune. Traitement des Exceptions

Mostafa Hanoune. Traitement des Exceptions Mostafa Hanoune 8 Traitement des Exceptions Objectifs A la fin de ce chapitre, vous saurez : Définir des exceptions PL/SQL Reconnaître les exceptions non gérées Lister et utiliser les différents types

Plus en détail

Cours n 7 Programmation - Introduction au mode application

Cours n 7 Programmation - Introduction au mode application Cours n 7 Programmation - Introduction au mode application Chantal Reynaud Université Paris X - Nanterre UFR SEGMI - IUP MIAGE Cours de Systèmes de Gestion de Données Licence MIAGE 2003-2004 1 Plan I.

Plus en détail

Cours 3. Contenu du cours : " Accès à une base de données. " Exécution de requêtes et lectures de résultats. " Les méta-données

Cours 3. Contenu du cours :  Accès à une base de données.  Exécution de requêtes et lectures de résultats.  Les méta-données Cours 3 Contenu du cours : " Accès à une base de données " Exécution de requêtes et lectures de résultats " Les méta-données 2 L'API JDBC est utilisée pour intéragir avec une base de données. Privilèges

Plus en détail

Les Déclencheurs ORACLE

Les Déclencheurs ORACLE Les Déclencheurs ORACLE Un déclencheur est un bloc PL/SQL associé à une vue ou une table, qui s'exécutera lorsqu'une instruction du langage de manipulation de données (DML) sera exécutée L'avantage principal

Plus en détail

Les triggers. Introduction 1/18. Objectifs. I Utiliser à bon escient le paramétrage des triggers :

Les triggers. Introduction 1/18. Objectifs. I Utiliser à bon escient le paramétrage des triggers : 1/18 2/18 Anne-Cécile Caron Licence MIAGE - Bases de Données 2015-2016 Objectifs Après ce cours, les TD et TP correspondants, vous devez être capables de I Ecrire en PL/SQL des triggers liés aux tables.

Plus en détail