Dialogue avec la base de données

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

Download "633-2.2 Dialogue avec la base de données"

Transcription

1 Dialogue avec la base de données 3. Manipulation des données avec un langage hôte 1

2 Références Filière Bachelor of Science en informatique de gestion Domaine Technologies informatiques Module 633 Architectures distribuées Unité d enseignement Applications réseaux et services applicatifs Dialogue avec la base de données 2

3 Objectifs Objectifs du module comprendre et mettre en œuvre les services applicatifs fondamentaux; développer, déployer et configurer des composants métiers sur un serveur d applications. Objectifs de l unité d enseignement «Dialogue avec la base de données» comprendre les différences entre l'architecture "serveur de fichiers" et "client/serveur"; maîtriser le principe du dialogue à sessions; comprendre la notion de concurrence; savoir manipuler des données à l'aide d'un langage hôte. 3

4 Découpage de l unité d enseignement 1. Architecture client/serveur 2. Transactions et verrous 3. Manipulation des données avec un langage hôte 4

5 Plan de la présentation SQL interactif<> SQL programmé Application Programming Interface pour bases de données Connexion aux bases de données avec un langage hôte Statements et curseurs Transactions et sessions Verrous Pools de connexions Améliorations et limites du JDBC 5

6 Quizz Quel est le lien «visible» entre l utilisateur et votre base de données? 6

7 Interface utilisateur Un utilisateur final n utilise pas SQL pour manipuler des données. L informaticien de gestion doit lui proposer une interface utilisateur adaptée à ses besoins. Pour se faire, il doit développer une interface utilisateur (IHM) à l aide d un langage de programmation. Java, C#, PHP, Oracle Apex 7

8 Exemple d interface utilisateur Proconcept ERP 8

9 Exemple d interface utilisateur Interface de FUTURA Université de Fribourg 9

10 Positionnement de l IHM dans une architecture logicielle IHM Utilisateur final Transactions Logique de présentation Logique applicative Logique métier Logique de persistance Services Programmes BD 10

11 Simplifions De quoi est constitué le code de l application?? Utilisateur final Code de l application BD 11

12 Qu allons-nous apprendre dans ce cours? Utilisateur final Code de l application Code de l application BD IHM Code métier Règles de navigation Accès à la base de données Requêtes SQL L accès à la BD et les requêtes SQL que vous développez sont du «SQL programmé». SQL programmé Permet le dialogue avec la base de données! 12

13 SQL programmé SQL programmé Intégrer le LMD dans un programme que vous développez. Mélange d instructions SQL, de boucles, de classes, etc Les requêtes doivent pouvoir gérer des variables. Le langage permettant d intégrer des instructions SQL se nomme «langage hôte» Utilisateur final Code de l application Langage hôte BD 13

14 SQL interactif SQL interactif Utiliser le SQL LMD sans l encapsuler dans un programme. Très intéressant pour les professionnels. Contrôle de la BD, interrogation du dico Utilisé depuis SQL*Plus (pour Oracle), SQLDeveloper, Toad SQL interactif BD Développeur 14

15 SQL programmé <> SQL interactif A vous de Avec spécifier paramètres les différences 5 minutes Peuvent puis restitution être construite en classe dynamiquement Ca se compile pas SQL Programmé Utilisé par les utilisateurs finaux Accès au curseur Prédéfinies et fixes (avec paramètre) Une méthode pour chaque requête SQL + langage hote CRUD SQL interactif Sans paramètre On voit les erreurs directement Utilisé par les développeurs Pas accès au curseur Liberté totale Requête résultat On ne peut connaitre «que» SQL LMD LDD LCD 15

16 Questions? 16

17 Plan de la présentation SQL interactif<> SQL programmé Application Programming Interface pour bases de données Connexion aux bases de données avec un langage hôte Statements et curseurs Transactions et sessions Verrous Pools de connexions Améliorations et limites du JDBC 17

18 Langage hôte et API Tous les langages «modernes» permettent d intégrer du SQL. Ils sont donc considérés comme langage hôte. Java, C#, PHP Les langages hôtes peuvent intégrer du SQL via différentes méthodes. L utilisation d API est l une des méthodes les plus utilisée. 18

19 Application Programming Interface Une API est un ensemble de classes et méthodes permettant de faire appel à des services de différents fournisseurs de façon unique. SAXAPI,DOM,JavaRMI,etc Il peut aussi s agir de méthodes publiées par un fournisseur pour interagir avec son système. Dans le cadre des BD, une API permet l utilisation de classes et méthodes pour simplifier et standardiser l appel à des sources de données. JDBC, ODBC, OLE DB 19

20 Application Programming Interface API JDBC, ODBC Source de données Client base de données SQLNet Protocol TCP 20

21 Des normes? Des accords? Le principe est toujours le même Un groupe d experts composés de fournisseurs et d indépendants se mettent d accord sur la signature des méthodes de leur API. Par exemple pour une API de BD: méthode connect() avec en paramètre le nom de la BD, méthode lanceselect() avec en paramètre le select Chaque fournisseur implémente ces méthodes (en respectant la signature) et fournit une implémentation de l API. Principe de l Interface en Java. 21

22 Quelques API pour accéder aux données ODBC Open Database Connectivity est une API permettant l accès et la manipulation de données d un très grand nombre de fournisseurs de bases de données. OLE DB OLE DB est une API permettant l accès à différentes sources de données. OLE DB n'est pas réservée aux sources de données relationnelles, mais est capable de traiter n'importe quel type de données indépendamment de leur format ou de leur méthode de stockage. OLEDBetODBCsonttrèsutilisésdanslemondeMicrosoftpouraccéderà des données (depuis VB, Excel ) JDBC API standard permettant l utilisation de bases de données depuis Java. 22

23 Avantages et inconvénients des APIs Niveau d abstraction Apporte une couche supplémentaire générique. Permet l accès à des services de différents fournisseurs de façon unique. Librairie supplémentaire à maîtriser pour le développeur. 23

24 Questions? 24

25 Eléments clés des étudiants 25

26 Travaux pratiques Série 3, exercices 1 et 2 26

27 Plan de la présentation SQL interactif<> SQL programmé Application Programming Interface pour bases de données JDBC Connexion aux bases de données avec un langage hôte Statements et curseurs Transactions et sessions Verrous Pools de connexions Améliorations et limites du JDBC 27

28 JCP et JSR Java Community Process (JCP)? The JCP is the mechanism for developing standard technical specifications for Java technology. Anyone can register for the site and participate in reviewing and providing feedback for the Java Specification Requests (JSRs), and anyone can sign up to become a JCP Member and then participate on the Expert Group of a JSR or even submit their own JSR Proposals Source: 28

29 JCP et JSR Java Specification Requests (JSR)? A JSR is a Java Specification Request. This is the document submitted to the PMO 1 by one or more members to propose the development of a new specification or significant revision to an existing specification. There are currently more than 90 Java technology specifications in development in the JCP program. Source: 1. The Program Management Office is the group within Sun designated to oversee the Java Community Process and manage the daily running of the program. 29

30 A quoi ça ressemble? JDBC évolue sur des JSR Et aussi à l aide du monde open source Voyons à quoi ça ressemble 30

31 JDBC introduction JDBC = Java DataBase Connectivity JDBC 1.0 (Java 1) JDBC 2.0 (J2SE 1.2) JDBC 3.0 (J2SE 1.4) JDBC 4.0 (Java SE 6) API standard permettant l utilisation de bases de données relationnelles depuis le monde Java. Il s agit d un ensemble de classes pouvant être utilisé depuis une application Java et permettant: la gestion de la connexion à la base de données; l utilisation de commandes SQL (DDL, DML, DCL); l exploitation des résultats de requêtes (données). 31

32 JDBC rend indépendant JDBC permet aux développeurs d utiliser des classes et méthodes indépendantes du SGBDR. JDBC utilise les drivers fournis par chaque constructeurs de bases de données. A vous, en tant que développeur, d utiliser les bons drivers et de les tester! Application java jdbc driver Oracle driver MySQL Oracle MySQL 32

33 Types de drivers Les drivers JDBC peuvent être de 4 types: pilotes de types 1; pilotes de types 2; pilotes de types 3; pilotes de types 4. 2 cas de figure : 33

34 Pilotes de type 1 Pilotes non autonomes Ils accèdent aux bases de données par une passerelle (via une autre technologie). «JDBC-ODBC» est le plus connu. Ce type de pilote convertit les ordres Java JDBC en ODBC valide. C est ODBC qui ensuite exécute les ordres. Ce pilote est livré en standard par Oracle (Sun) avec JDBC. Permet une connexion vers des bases de données ne disposant pas d un driver JDBC. Peu performant 34

35 Pilotes de type 2 Il s agit de pilotes natifs. Aussi nommé drivers «OCI» chez Oracle. classes12.jar (J2SE 1.2), ojdbc14.jar (J2SE 1.5, Java SE 5) et ojdbc6.jar (Java SE 6) contiennent tous un driver de type 2 pour se connecter à Oracle. Nécessite l installation du client Oracle sur la machine qui lance des commandes JDBC. Très bonnes performances Les commandes Java JDBC sont traduites en appels natifs vers le serveur de base de données. PDA-dernière mise à jour :

36 Pilotes de type 3 Il s agit de pilotes entièrement écrit en java convertissant les appels JDBC en un protocole indépendant du SGBD. Ce type de pilote fait appel à un serveur intermédiaire pour accéder le SGBD. A ce jour, je n en ai encore jamais rencontré. PDA-dernière mise à jour :

37 Pilotes de type 4 Pilotes écrits en java se connectant au SGBD. Aussi nommé drivers «thin» chez Oracle. classes12.jar (J2SE 1.2), ojdbc14.jar (J2SE 1.5, Java SE 5) et ojdbc6.jar (Java SE 6) contiennent tous un driver de type 4 pour se connecter à Oracle. Facile à installer. Indépendant à la plateforme. Performance identique aux drivers de type 2. Ne nécessite pas d installation d autres médiateurs. PDA-dernière mise à jour :

38 Jar et implémentation JDBC d Oracle Un JAR (Java ARchive) est un ensemble de classes, interfaces, fichiers Java compilés et compressés dans un fichier le.jar Chaque fournisseur de BD livre une librairie.jar contenant son implémentation JDBC pour sa base de données. Oracle fournit les jar classes12.jar, ojdbc14.jar, ojdbc6.jar PostgreSQL fournit les jar postgresql-9.0dev-800.jdbc4.jar IBM fournit db2jcc.jar pour DB2 Chaque fournisseur livre son implémentation de JDBC. 38

39 Compatibilité des drivers Oracle Version de Java Java 1.2 et 1.3 Java 1.4 Java 5 Java 6 Driver classes12.jar ojdbc14.jar ojdbc5.jar ojdbc6.jar 39

40 JDBC packages JDBC 4.0 est réparti dans 2 packages java.sql Package permettant l accès et la manipulation de données provenant d une base de données relationnelle via le langage hôte Java. javax.sql Package pour la partie serveur (utilisation de datasource d un serveur d applications par exemple). 40

41 java.sql java.sql contient des interfaces (au sens java). C est au fournisseur d implémenter ces interfaces. L implémentation doit être faite par les constructeurs de SGBDR. Certaines interfaces peuvent ne pas être implémentées mais seront disponibles tout de même En simplifiant, chez Oracle c est le jar ojdbc6.jar qui implémente les interfaces définies chez Sun. C est donc à Oracle de développer et livrer un driver JDBC. 41

42 Les interfaces et classes importantes de l API JDBC DriverManager Classe de base pour gérer les drivers JDBC et pour créer une connexion. Connection C est une session à la base de données. Cet objet (une fois instancié ) va permettre de gérer les transactions, de créer des «statements» 42

43 Les interfaces et classes importantes de l API JDBC Statement Interface à utiliser pour exécuter des instructions SQL statiques. Retourne le résultat produit dans un ResultSet. PreparedStatement Objet à utiliser pour exécuter des requêtes paramètrées. CallableStatement Objet à utiliser pour exéctuer des procédures stockées. 43

44 Les interfaces et classes importantes de l API JDBC ResultSet Un set de données resultant de la base de données. Notion de curseur (rappel PL/SQL ) ResultSetMetaData Cet classe peut être instanciée pour obtenir les métadonnées d un ResultSet. 44

45 Relation entre les interfaces JDBC DriverManager Connection Statement ResultSet 45

46 JDBC avantages Portabilité. Implémenté par tous les fournisseurs de BD. Relativement facile d utilisation. 46

47 JDBC désavantages 1/2 API de bas niveau. Pas de contrôle de SQL lors du développement. Erreur à l exécution Attention, certaines méthodes peuvent ne pas être implémentées par des fournisseurs 47

48 JDBC désavantages 2/2 Du code propriétaire à une base de données n est pas portable! «select connect by» sur Oracle «select * from employe, departement where employe.dep_id = departement.id» jointure non standard Problème paradigme Objet Relationnel. 48

49 Les bonnes façons de faire Il ne faut pas oublier les bonnes pratiques liées aux bases de données: gérer correctement les transactions ; ne pas oublier les verrous; 49

50 Questions? 50

51 Eléments clés des étudiants 51

52 Plan de la présentation SQL interactif<> SQL programmé Application Programming Interface pour bases de données JDBC Connexion aux bases de données avec un langage hôte Statements et curseurs Transactions et sessions Verrous Pools de connexions Améliorations et limites du JDBC 52

53 Schéma de principe de connexion Programme (langage hôte) Requêtes SQL Curseurs Connexion Base de données 53

54 Langage hôte utilisé dans ce cours Nous allons utiliser Java comme langage hôte pour illustrer les concepts de ce cours. JDBC sera l API à utiliser 54

55 Connexion à une base de données à l aide de JDBC DriverManager Classe de base pour gérer les drivers JDBC et pour créer une connexion. La méthode getconnection permet de retourner une instance de «Connection». Connection myconn = DriverManager.getConnection(url, user, password); Connection Connection est une interface Cet objet (une fois instancié ) va permettre de gérer les transactions, de créer des «statements» C est une session à la base de données. 55

56 Schéma de principe de connexion en Java Programme Java Requêtes SQL Curseurs Connection Base de données try{ Connection myconn = DriverManager.getConnection(url, user, password); catch(sqlexception sqle) { System.out.println("Erreur SQL:" + sqle); } 56

57 Utilisation du bloc try catch Veuillez pour l instant encapsuler vos instructions JDBC (connexion, appel de requêtes SQL, etc.) dans un bloc try catch. Nous traiterons plus en détail dans un prochain chapitre la gestion des exceptions en Java (lié aux BD) try{ Connection myconn = DriverManager.getConnection(url, user, password); catch(sqlexception sqle) { System.out.println("Erreur SQL:" + sqle); } 57

58 Quelques méthodes de l interface Connection createstatement Creates a Statement object for sending SQL statements to the database preparestatement(string) preparedstatement Creates a PreparedStatement object for sending parameterized SQL statements to the database 58

59 Quelques méthodes de l interface Connection getmetadata Retrieves a DatabaseMetaData object that contains metadata about the database to which this Connection object represents a connection close() Releases this Connection object's database and JDBC resources immediately instead of waiting for them to be automatically released 59

60 Quelques méthodes de l interface Connection setautocommit(boolean) Sets this connection's auto-commit mode to the given state commit() Makes all changes made since the previous commit/rollback permanent and releases any database locks currently held by this Connection object rollback() Undoes all changes made in the current transaction and releases any database locks currently held by this Connection object * Explications tirées de la document Java 60

61 Schéma de principe de connexion en Java Programme Java Statement PreparedSt atement Base de données Connection myconn.createstatement() myconn.preparedstatement() 61

62 Avant JDBC 4.0 JDBC 4.0 existe depuis Java SE 6.0. Avant cette version, il était nécessaire de charger le pilote JDBC avant d effectuer une connexion à la base de données. Class.forName() pour les pilotes de type 1. Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); DriverManager.registerDriver() pour les pilotes de type 2, 3 et 4. DriverManager.registerDriver( new Oracle.jdbc.driver.OracleDriver()); 62

63 Fermeture des connexions JDBC Une connexion à la base de données via JDBC est fermée automatiquement via le garbage collector. Toutefois, afin de libérer les ressources dès que possible, il est nécessaire de fermer correctement les connexions. Connection myconn; myconn.close(); Afin de s assurer de la fermeture correcte des connexions, une bonne pratique consiste à fermer les connexions dans la partie finally des exceptions. 63

64 Utilisation de librairie Pour que votre programme Java puisse fonctionner, il est nécessaire qu il puisse référencer votre librairie JDBC. ojdbc6.jar par exemple avec Java SE 6. N oubliez donc pas de configurer votre EDI 64

65 Questions? 65

66 Eléments clés des étudiants 66

67 Travaux pratiques Série 3, exercice 3 67

68 Plan de la présentation SQL interactif<> SQL programmé Application Programming Interface pour bases de données Connexion aux bases de données avec un langage hôte Statements et curseurs Statements, PreparedStatement et CallableStatement Transactions et sessions Verrous Pools de connexions Améliorations et limites du JDBC 68

69 Schéma de principe de connexion en Java Rappel! Programme Java Statement PreparedSt atement Base de données Connection myconn.createstatement() myconn.preparedstatement() 69

70 Connexion et objets associés Lorsqu une connexion est établie entre votre programme Java et votre base de données, vous pouvez utiliser des objets permettant l exécution d instructions SQL: Statement PreparedStatement CallableStatement 70

71 Statement «The object used for executing a static SQL statement and returning the results it produces» L interface Statement fournit les méthodes nécessaires à la soumission d une instruction SQL statique. 71

72 Statement Création La création d un objet de type Statement s effectue à l aide de votre objet de type Connection par la méthode createstatement(). Connection myconn = DriverManager.getConnection(url, user, password); Statement stmt = myconn.createstatement(); 72

73 Statement Manipulation Une fois un objet de type Statement instancié, vous pouvez le manipuler. Voici les méthodes principales: Method summary ResultSet executequery(string sql) Executes the given SQL statement, which returns a single ResultSet object int void executeupdate(string sql) Executes the given SQL statement, which may be an INSERT, UPDATE, or DELETE statement or an SQL statement that returns nothing, such as an SQL DDL statement close() Releases this Statement object's database and JDBC resources immediately instead of waiting for this to happen when it is automatically closed Source: 73

74 Statement Manipulation executeupdate ou executequery? Instruction SQL LDD SELECT LMD (autre que SELECT) LCD Méthode à utiliser executeupdate executequery executeupdate executeupdate 74

75 Statement Manipulation - exemple Statement stmt = myconn.createstatement(); ResultSet curseurjava = stmt.executequery("select id, nom, prenom FROM EMPLOYES "); 75

76 Statement Mais encore? En 2 fois! La soumission d une instruction SQL s effectue en 2 phases: Contrôle des tables et colonnes nécessaires (Metadata) Exécution de l instruction 76

77 PreparedStatement «An object that represents a precompiled SQL statement» L interface PreparedStatement hérite de Statement et la spécialise en fournissant les méthodes nécessaires à la soumission d une instruction SQL dynamique. Un PreparedStatement permet l exécution d une instruction SQL paramétrée. Permet de passer des paramètres liés à un ordre SQL (bind parameters). Les paramètres sont passés par position. 77

78 PreparedStatement Création La création d un objet de type PreparedStatement s effectue à l aide de votre objet de type Connection par la méthode preparestatement(string). Connection myconn = DriverManager.getConnection(url, user, password); PreparedStatement stmt = myconn.preparestatement("ordre SQL"); 78

79 PreparedStatement Manipulation Une fois un objet de type PreparedStatement instancié, vous pouvez le manipuler : Method summary ResultSet int void void executequery(string sql) Executes the given SQL statement, which returns a single ResultSet object executeupdate(string sql) Executes the given SQL statement, which may be an INSERT, UPDATE, or DELETE statement or an SQL statement that returns nothing, such as an SQL DDL statement close() Releases this Statement object's database and JDBC resources immediately instead of waiting for this to happen when it is automatically closed setxxx(int,xxx) Sets the designated parameter to the given Java XXX type value setstring(int, String), setdate(int, Date), setdouble(int, double) Source: 79

80 PreparedStatement Manipulation - exemple PreparedStatement stmt = myconn.preparestatement("update employe set salaire =?"); stmt.setbigdecimal(1, new BigDecimal(5500)); stmt.executeupdate(); 80

81 PreparedStatement Vs Statement Il est possible de passer des paramètres à des simples Statement sans utiliser de PrepardStatement. En concaténant les paramètres aux ordres SQL dans des chaînes de caractères. stmt = MyConn.createStatement(); query = "UPDATE PROJ_TACHE_MAINTENANCE " + "set description = '" + parametre1 + "',proj_projet_id = " + parametre2 + ", proj_etat_id = " + parametre3 + " where id = " + parametre4; Cette façon de procéder est mauvaise! 81

82 Avantages des PreparedStatement par rapport aux Statement Performance Il n est compilé qu une seule fois même si les paramètres changent gain si la commande SQL est lancée n fois. Facilité d utilisation L utilisation de variables liées (ou paramètres liés) est plus adéquat. Portabilité Par exemple, les setdate() permettent de masquer les différents types de format de dates des BD. Sécurité Eviter l injection de code SQL. Gestion des caractères spéciaux dans les setstring() 82

83 CallableStatement «The interface used to execute SQL stored procedures» L interface CallableStatement hérite de PreparedStatement. Elle fournit les méthodes nécessaires à la soumission d un sous-programme (fonction, procédure stockée) de votrebasededonnées. 83

84 CallableStatement Création La création d un objet de type CallableStatement s effectue à l aide de votre objet de type Connection par la méthode preparecall(). Connection myconn = DriverManager.getConnection(url, user, password); CallableStatement proc = myconn.preparecall ("{call paiesalaire(?)}"); 84

85 CallableStatement Appels Fonction {?= call <procedure name>[(<arg1>,<arg2>,...)]} Procédure {call <procedure name>[(<arg1>,<arg2>,...)]} 85

86 CallableStatement Manipulation Une fois un objet de type CallableStatement instancié, vous pouvez le manipuler. Les méthodes importantes sont semblables aux méthodes de l interface PreparedStatement. CallableStatement proc = myconn.preparecall ("{call paiesalaire(?)}"); proc.setlong(1, ); proc.execute(); 86

87 Libération des objets Il est important de libérer les objets de type Statement, PreparedStatement et CallableStatement lorsque vous les avez utilisé. 87

88 Questions? 88

89 Eléments clés des étudiants 89

90 Travaux pratiques Série 3, exercice 4 90

91 Plan de la présentation SQL interactif<> SQL programmé Application Programming Interface pour bases de données Connexion aux bases de données avec un langage hôte Statements et curseurs Curseurs statiques Autres types de curseurs Transactions et sessions Verrous Pools de connexions Améliorations et limites du JDBC 91

92 Interfaçage relationnel / procédural Une requête sur une base de données retourne généralement plusieurs lignes. Le résultat d une requête depuis un langage procédural doit s effectuer dans une structure adaptée aux traitements de plusieurs lignes. notion de curseur 92

93 Notion de curseur «Un curseur est une structure pouvant stocker le résultat de requêtes et pouvant le manipuler ce résultat via un langage hôte.» Un curseur est comme un pointeur parcourant un tableau d'enregistrements, avec lequel on navigue via le langage hôte en extrayant les lignes une à une. C est une structure adaptée à la manipulation de données en mémoire provenant d une base de données. 93

94 Types de curseurs (ANSI) ANSI 1 spécifie 4 types de curseurs Curseurs statiques (lecture seule) Curseurs en avant seulement Curseurs dynamiques (lecture / écriture) Curseurs d ensemble de valeurs clés (pointeurs) 1. American National Standards Institute. 94

95 Les curseurs en Java Comme tous les langages hôtes, Java propose une structure adaptée aux traitements de plusieurs lignes. java.sql.resultset id nom prenom Pointeur 12 bbb ccc 4 asdf cccc 23 bbb adsf Instance de ResultSet Base de données 95

96 java.sql.resultset A table of data representing a database result set, which is usually generated by executing a statement that queries the database Source : Un ResultSet est une interface Java. Un objet de type ResultSet est instancié et alimenté par le résultat de l exécution d un Statement ou PreparedStatement. Statement stmt = myconn.createstatement(); ResultSet curseurjava = stmt.executequery("select id, nom, prenom FROM EMPLOYES "); 96

97 ResultSet statique en avant seulement Un objet de type ResultSet est par défaut non navigable et non modifiable. Il s agit donc d un curseur «statique en avant seulement». Ce type de curseur est bien adapté au parcours d un ensemble de lignes résultant d une requête SQL (SELECT) pour affichage. id nom prenom Sens de la lecture 12 bbb ccc 4 asdf cccc 23 bbb adsf 97

98 Parcours d un ResultSet statique en avant seulement Le parcours d un ResultSet «statique en avant seulement» s effectue à l aide d une boucle. La méthode next() charge le prochain enregistrement en retournant true tant qu il y a des éléments dans le curseur. while(curseurjava.next()) { } Après Avant 1(instanciation er 2 3 ème ème next() la boucle (plus next() d éléments) du curseur) id nom prenom 12 bbb ccc 4 asdf cccc 23 bbb adsf 98

99 Récupération de données Les méthodes getxxx(int) et getxxx(string), où Xxx est le type de la colonne, permettent de récupérer la valeur d une colonne de l enregistrement courant. getxxx(int) avec en paramètre le numéro de la colonne. getxxx(string) avec en paramètre le nom de la colonne. while(curseurjava.next()) { System.out.println(curseurJava.getString("nom") + " " + curseurjava.getstring("prenom")); } id nom prenom 12 bbb ccc 1 er tour de la boucle, getstring("nom"); 4 asdf cccc 23 bbb adsf 99

100 Fermeture d un ResultSet (curseur) Un curseur se ferme implicitement lorsque le Statement ou PreparedStatement est fermé. Attention, une bonne pratique consiste à fermer le curseur explicitement! curseurjava.close(); 100

101 Résumé des classes et interfaces de base JDBC REESE, George. Database Programming with JDBC and Java. USA: O'Reilly,

102 Questions? 102

103 Eléments clés des étudiants 103

104 Travaux pratiques Série 3, exercice 5 104

105 Plan de la présentation SQL interactif<> SQL programmé Application Programming Interface pour bases de données Connexion aux bases de données avec un langage hôte Statements et curseurs Curseurs statiques Autres types de curseurs, navigables et dynamiques Transactions et sessions Verrous Pools de connexions Améliorations et limites du JDBC 105

106 Autres types de curseurs en Java Les curseurs «statiques en avant seulement», ResultSet, sont disponibles depuis JDBC 1.0. Afin de suivre la norme SQL-02 (SQL92) qui propose des curseurs navigables, Java se dote d une nouvelle version de son API JDBC. JDBC 2.0 JDBC 2.0 propose aussi de rendre les curseurs modifiable (dynamiques). Lecture / écriture. 106

107 ResultSet navigable Un curseur «statique en avant seulement» peut être parcouru seulement du début jusqu à la fin. Un curseur navigable peut être parcouru dans tous les sens. id nom prenom 12 bbb ccc 4 asdf cccc 23 bbb adsf 107

108 ResultSet navigable UnobjetdetypeResultSetnavigableestinstanciéet alimenté par le résultat de l exécution d un Statement ou PreparedStatement. Une constante de navigation doit être spécifiée lors de la création du Statement ou PreparedStatement. 108

109 ResultSet navigable Il existe 3 constantes de navigation: ResultSet.TYPE_FORWARD_ONLY Curseur non navigable (par défaut) ResultSet.TYPE_SCROLL_INSENSITIVE Curseur navigable et non sensible aux modifications dans les autres transactions. ResultSet.TYPE_SCROLL_SENSITIVE Curseur navigable et sensible aux modifications des les autres transactions. 109

110 Sensibilité aux autres transactions Une curseur ResultSet.TYPE_SCROLL_INSENSITIVE n est pas mis à jour automatiquement lorsque les données sont modifiées par une autre transaction. Une curseur ResultSet.TYPE_SCROLL_SENSITIVE est mis à jour automatiquement lorsque les données sont modifiées et validées (commit) par une autre transaction. 110

111 Création d un curseur navigable La constante de navigation doit être spécifiée lors de la création du Statement ou PreparedStatement. Exemple: PreparedStatement stmt = myconn.preparestatement("select a, b, c" + "FROM d WHERE a =? " + "ORDER BY b, c, a", ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY); 111

112 Parcours d un ResultSet navigable Le parcours d un ResultSet navigable peut s effectuer dans une boucle mais aussi à l aide de méthodes spécifiques dont: last() first() islast() absolute(int position) 112

113 ResultSet modifiable Un ResultSet modifiable permet de mettre à jour les données d un ResultSet (en mémoire) et de répliquer ces changements au niveau de la base de données. Il est donc possible d effecuter des insertions, des modifications et des suppressions de données. Afin de rendre un ResultSet modifiable, il est nécessaire de spécifier la constante de modification: ResultSet.CONCUR_UPDATABLE PreparedStatement stmt = myconn.preparestatement("select a, b, c" + "FROM d WHERE a =? " + "ORDER BY b, c, a", ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_UPDATABLE); 113

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

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

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

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

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

Quelques patterns pour la persistance des objets avec DAO DAO. Principe de base. Utilité des DTOs. Le modèle de conception DTO (Data Transfer Object)

Quelques patterns pour la persistance des objets avec DAO DAO. Principe de base. Utilité des DTOs. Le modèle de conception DTO (Data Transfer Object) Quelques patterns pour la persistance des objets avec DAO Ce cours présente des modèles de conception utilisés pour effectuer la persistance des objets Université de Nice Sophia-Antipolis Version 1.4 30/8/07

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

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

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

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

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

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

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

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

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

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

SGBDR. Systèmes de Gestion de Bases de Données (Relationnelles)

SGBDR. Systèmes de Gestion de Bases de Données (Relationnelles) SGBDR Systèmes de Gestion de Bases de Données (Relationnelles) Plan Approches Les tâches du SGBD Les transactions Approche 1 Systèmes traditionnels basés sur des fichiers Application 1 Gestion clients

Plus en détail

La persistance des données dans les applications : DAO, JPA, Hibernate... COMPIL 2010 francois.jannin@inp-toulouse.fr 1

La persistance des données dans les applications : DAO, JPA, Hibernate... COMPIL 2010 francois.jannin@inp-toulouse.fr 1 La persistance des données dans les applications : DAO, JPA, Hibernate... COMPIL 2010 francois.jannin@inp-toulouse.fr 1 Plan 1. Généralités sur la persistance des données dans les applications 2. La connection

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

JDBC avancé. Plan de cette partie. Génération de clés. Génération automatique de clés et JDBC. Une situation courante. Récupération des clés générées

JDBC avancé. Plan de cette partie. Génération de clés. Génération automatique de clés et JDBC. Une situation courante. Récupération des clés générées Plan de cette partie JDBC avancé Université de Nice - Sophia Antipolis Version 1.15.6 11/10/11 Richard Grin Génération des clés ResultSet «avancé» RowSet Regrouper les modifications Types de données SQL

Plus en détail

Compte Rendu d intégration d application

Compte Rendu d intégration d application ISMA 3EME ANNEE Compte Rendu d intégration d application Compte Rendu Final Maxime ESCOURBIAC Jean-Christophe SEPTIER 19/12/2011 Table des matières Table des matières... 1 Introduction... 3 1. Le SGBD:...

Plus en détail

JDBC (Java DataBase Connectivity)

JDBC (Java DataBase Connectivity) JDBC (Java DataBase Connectivity) M. Belguidoum Université Mentouri de Constantine Département Informatique M. Belguidoum (UMC) Programmation réseau 1 / 52 Plan 1 Introduction 2 Le paquetage java.sql 3

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 12 : Concurrence d accès Anne Vilnat http://www.limsi.fr/individu/anne/cours Plan 1 Accès concurrents Définitions Verrous Collisions Niveaux de cohérence Blocage

Plus en détail

Notes de cours : bases de données distribuées et repliquées

Notes de cours : bases de données distribuées et repliquées Notes de cours : bases de données distribuées et repliquées Loïc Paulevé, Nassim Hadj-Rabia (2009), Pierre Levasseur (2008) Licence professionnelle SIL de Nantes, 2009, version 1 Ces notes ont été élaborées

Plus en détail

JDBC. Java Database Connectivity (JDBC) JDBC JDBC. Java Database Connectivity (JDBC) Lionel Seinturier. Université Pierre & Marie Curie

JDBC. Java Database Connectivity (JDBC) JDBC JDBC. Java Database Connectivity (JDBC) Lionel Seinturier. Université Pierre & Marie Curie Java Database Connectivity () Lionel Seinturier Université Pierre & Marie Curie Lionel.Seinturier@lip6.fr 10/9/04 1 Lionel Seinturier Java Database Connectivity () Permet à un programme Java d'interagir

Plus en détail

Bases de données et sites WEB Licence d informatique LI345

Bases de données et sites WEB Licence d informatique LI345 Bases de données et sites WEB Licence d informatique LI345 Anne Doucet Anne.Doucet@lip6.fr http://www-bd.lip6.fr/ens/li345-2013/index.php/lescours 1 Contenu Transactions en pratique Modèle relationnel-objet

Plus en détail

Introduction à ADO.NET

Introduction à ADO.NET 1 Introduction à ADO.NET Introduction à ADO.NET Sommaire Introduction à ADO.NET... 1 1 Introduction... 2 1.1 Qu est ce que l ADO.NET?... 2 1.2 Les nouveautés d ADO.NET... 2 1.3 Les avantages d ADO.NET...

Plus en détail

Web dynamique. Techniques, outils, applications. (Partie C)

Web dynamique. Techniques, outils, applications. (Partie C) Web dynamique Techniques, outils, applications (Partie C) Nadir Boussoukaia - 2006 1 SOMMAIRE 1. MySQL et PHP (20 min) 2. SQL (petits rappels) (20 min) 2 MySQL et PHP Synthèse 3 MySQL et PHP SGBD MySQL

Plus en détail

Programme «Analyste Programmeur» Diplôme d état : «Développeur Informatique» Homologué au niveau III (Bac+2) (JO N 176 du 1 août 2003) (34 semaines)

Programme «Analyste Programmeur» Diplôme d état : «Développeur Informatique» Homologué au niveau III (Bac+2) (JO N 176 du 1 août 2003) (34 semaines) Programme «Analyste Programmeur» Diplôme d état : «Développeur Informatique» Homologué au niveau III (Bac+2) (JO N 176 du 1 août 2003) (34 semaines) Module 1 : Programmer une application informatique Durée

Plus en détail

Pooling de connexions. Olivier Curé - UMLV [page 1 ]

Pooling de connexions. Olivier Curé - UMLV [page 1 ] Pooling de connexions Olivier Curé - UMLV [page 1 ] Introduction Une connexion à une base de données est une ressource rare et coûteuse qui ne peut être partagée par des threads. Il faut donc réfléchir

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

JDBC le langage Java XVI-1 JMF

JDBC le langage Java XVI-1 JMF JDBC Java Database Connectivity XVI-1 JDBC JDBC est une API Java (ensemble de classes et d'interfaces défini par SUN et les acteurs du domaine des BD) permettant d'accéder aux bases de données à l'aide

Plus en détail

Implémentation des SGBD

Implémentation des SGBD Implémentation des SGBD Structure générale des applications Application utilisateur accédant à des données d'une base Les programmes sous-jacents contiennent du code SQL Exécution : pendant l'exécution

Plus en détail

Application web de gestion de comptes en banques

Application web de gestion de comptes en banques Application web de gestion de comptes en banques Objectif Réaliser une application Web permettant à un client de gérer ses comptes en banque Diagramme de cas d'utilisation 1 Les cas d'utilisation Connexion

Plus en détail

Connexion à SQL Server 2005 à partir du serveur d application SJSAS 9 Utilisation d une interface JDBC

Connexion à SQL Server 2005 à partir du serveur d application SJSAS 9 Utilisation d une interface JDBC Connexion à SQL Server 2005 à partir du serveur d application SJSAS 9 Utilisation d une interface JDBC Sommaire 1. Objectifs et intérêts... 2 2. Intégrer le driver SQL Server dans SJSAS 9... 2 2.1. Télécharger

Plus en détail

Institut Supérieur de Gestion. Cours pour 3 ème LFIG. Java Enterprise Edition Introduction Bayoudhi Chaouki

Institut Supérieur de Gestion. Cours pour 3 ème LFIG. Java Enterprise Edition Introduction Bayoudhi Chaouki Institut Supérieur de Gestion Cours pour 3 ème LFIG Java Enterprise Edition Introduction Bayoudhi Chaouki 1 Java EE - Objectifs Faciliter le développement de nouvelles applications à base de composants

Plus en détail

Servlets, beans, base de données

Servlets, beans, base de données Institut Galilée E-services Année 2014-2015 Master 2 T.P. 2 Servlets, beans, base de données L objectif de ce TP est de mettre en place un site web pour l administration et la commande de pizzas : une

Plus en détail

4. Utilisation d un SGBD : le langage SQL. 5. Normalisation

4. Utilisation d un SGBD : le langage SQL. 5. Normalisation Base de données S. Lèbre slebre@unistra.fr Université de Strasbourg, département d informatique. Présentation du module Contenu général Notion de bases de données Fondements / Conception Utilisation :

Plus en détail

Java pour le Web. Cours Java - F. Michel

Java pour le Web. Cours Java - F. Michel Java pour le Web Cours Java - F. Michel Introduction à JEE 6 (ex J2EE) Historique Qu'est-ce que JEE JEE : Java Entreprise Edition (ex J2EE) 1. Une technologie outils liés au langage Java + des spécifications

Plus en détail

Mysql. Les requêtes préparées Prepared statements

Mysql. Les requêtes préparées Prepared statements Mysql Les requêtes préparées Prepared statements Introduction Les prepared statements côté serveur sont une des nouvelles fonctionnalités les plus intéressantes de MySQL 4.1 (récemment sorti en production

Plus en détail

BTS S.I.O. 2012-2013 PHP OBJET. Module SLAM4. Nom du fichier : PHPRévisionObjetV2.odt Auteur : Pierre Barais

BTS S.I.O. 2012-2013 PHP OBJET. Module SLAM4. Nom du fichier : PHPRévisionObjetV2.odt Auteur : Pierre Barais BTS S.I.O. 2012-2013 PHP OBJET Module SLAM4 Nom du fichier : PHPRévisionObjetV2.odt Auteur : Pierre Barais Table des matières 1 But... 3 2 Les bases :... 3 3 Utilisation d'une classe : Instanciation...3

Plus en détail

PHP & BD. PHP & Bases de données. Logiciels & matériels utilisés. Bases de données et Web

PHP & BD. PHP & Bases de données. Logiciels & matériels utilisés. Bases de données et Web PHP & Bases de données La quantité de données utilisée par certains sites web nécessite l'utilisation d'une base de données Il faut donc disposer d'un SGBD (mysql, postgresql, oracle, ) installé sur un

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

Programmation d applications distribuées

Programmation d applications distribuées Programmation d applications distribuées François Charoy Université Henri Poincaré 8 octobre 2007 Première partie I Développement d applications distribuées Objectifs du cours Comprendre ce qu est une

Plus en détail

Présentation du module. Base de données spatio-temporelles. Exemple. Introduction Exemple. Plan. Plan

Présentation du module. Base de données spatio-temporelles. Exemple. Introduction Exemple. Plan. Plan Base de données spatio-temporelles S. Lèbre slebre@unistra.fr Université de Strasbourg, département d informatique. Présentation du module Contenu général Partie 1 : Notion de bases de données (Conception

Plus en détail

T.P. 3 Base de données, JDBC et Mapping Objet-relationnel

T.P. 3 Base de données, JDBC et Mapping Objet-relationnel EPITA Ala Eddine BEN SALEM App-Ing2 J2EE T.P. 3 Base de données, JDBC et Mapping Objet-relationnel L'objectif de ce TP est de vous faire pratiquer l'api JDBC qui permet d'accéder à une base de données

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

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

//////////////////////////////////////////////////////////////////// Administration bases de données

//////////////////////////////////////////////////////////////////// Administration bases de données ////////////////////// Administration bases de données / INTRODUCTION Système d informations Un système d'information (SI) est un ensemble organisé de ressources (matériels, logiciels, personnel, données

Plus en détail

JDBC JDBC. Java DataBase Connectivity

JDBC JDBC. Java DataBase Connectivity Java DataBase Connectivity Philippe GENOUD UJF Février 2004 1 Introduction Offre une API unique d accès à toute BD conforme au standard SQL-92 Objectifs : Fournir un accès homogène aux SGBD une application

Plus en détail

ORACLE 10G DISTRIBUTION ET REPLICATION. Distribution de données avec Oracle. G. Mopolo-Moké prof. Associé UNSA 2009/ 2010

ORACLE 10G DISTRIBUTION ET REPLICATION. Distribution de données avec Oracle. G. Mopolo-Moké prof. Associé UNSA 2009/ 2010 ORACLE 10G DISTRIBUTION ET REPLICATION Distribution de données avec Oracle G. Mopolo-Moké prof. Associé UNSA 2009/ 2010 1 Plan 12. Distribution de données 12.1 Génération des architectures C/S et Oracle

Plus en détail

Module FMIN358 Technologies du Web : PHP objet et couches d accès aux bases de données

Module FMIN358 Technologies du Web : PHP objet et couches d accès aux bases de données Module FMIN358 Technologies du Web : PHP objet et couches d accès aux bases de données 1. Exploiter une couche métier objet PHP prend en charge certains des grands principes du paradigme objet (héritage,

Plus en détail

Module FMIN358 Technologies du Web : PHP objet et l extension PDO

Module FMIN358 Technologies du Web : PHP objet et l extension PDO Module FMIN358 Technologies du Web : PHP objet et l extension PDO 1. Extensions PHP pour interfacer les bases de données relationnelles Diverses extensions comme PHP Data Objects (PDO), ADOdb, Zend db

Plus en détail

Types d applications pour la persistance. Outils de développement. Base de données préexistante? 3 modèles. Variantes avec passerelles

Types d applications pour la persistance. Outils de développement. Base de données préexistante? 3 modèles. Variantes avec passerelles Types d applications pour la persistance Université de Nice Sophia-Antipolis Version 0.9 28/8/07 Richard Grin Toutes les applications n ont pas une complexité qui nécessite une architecture n- tiers Ce

Plus en détail

CHAPITRE 1 ARCHITECTURE

CHAPITRE 1 ARCHITECTURE 07/04/2014 Université des sciences et de la Technologie Houari Boumediene USTHB Alger Département d Informatique ADMINISTRATION ET TUNING DE BASES DE DONNÉES CHAPITRE 1 ARCHITECTURE RESPONSABLE DR K. BOUKHALFA

Plus en détail

Langage SQL (1) 4 septembre 2007. IUT Orléans. Introduction Le langage SQL : données Le langage SQL : requêtes

Langage SQL (1) 4 septembre 2007. IUT Orléans. Introduction Le langage SQL : données Le langage SQL : requêtes Langage SQL (1) Sébastien Limet Denys Duchier IUT Orléans 4 septembre 2007 Notions de base qu est-ce qu une base de données? SGBD différents type de bases de données quelques systèmes existants Définition

Plus en détail

Module BD et sites WEB

Module BD et sites WEB Module BD et sites WEB Cours 8 Bases de données et Web Anne Doucet Anne.Doucet@lip6.fr 1 Le Web Architecture Architectures Web Client/serveur 3-tiers Serveurs d applications Web et BD Couplage HTML-BD

Plus en détail

Information utiles. cinzia.digiusto@gmail.com. webpage : Google+ : http://www.ibisc.univ-evry.fr/ digiusto/

Information utiles. cinzia.digiusto@gmail.com. webpage : Google+ : http://www.ibisc.univ-evry.fr/ digiusto/ Systèmes de gestion de bases de données Introduction Université d Evry Val d Essonne, IBISC utiles email : cinzia.digiusto@gmail.com webpage : http://www.ibisc.univ-evry.fr/ digiusto/ Google+ : https://plus.google.com/u/0/b/103572780965897723237/

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

Quel SGBDR pour VFP?

Quel SGBDR pour VFP? D. Peralta le 4 mars 2008 Rencontres AtoutFox 2007/2008 Quel SGBDR pour VFP? Lors des précédentes rencontres, nous avons écrit des articles sur l utilisation des SGBDR avec VFP. Nous avons vu les différentes

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

Les transactions 1/40. I même en cas de panne logicielle ou matérielle. I Concept de transaction. I Gestion de la concurrence : les solutions

Les transactions 1/40. I même en cas de panne logicielle ou matérielle. I Concept de transaction. I Gestion de la concurrence : les solutions 1/40 2/40 Pourquoi? Anne-Cécile Caron Master MAGE - BDA 1er trimestre 2013-2014 Le concept de transaction va permettre de définir des processus garantissant que l état de la base est toujours cohérent

Plus en détail

Sauvegarde locale des données : SharedPreferences, SQLite, Files

Sauvegarde locale des données : SharedPreferences, SQLite, Files Sauvegarde locale des données : SharedPreferences,, Files Jean-Ferdinand Susini Maître de conférences au CNAM Sources : Wikipedia, developper.android.com Paris, 31/05/2015 Les SharedPreferences 2 Héritier

Plus en détail

Cours Bases de données

Cours Bases de données Informations sur le cours Cours Bases de données 9 (10) séances de 3h Polycopié (Cours + TD/TP) 3 année (MISI) Antoine Cornuéjols www.lri.fr/~antoine antoine.cornuejols@agroparistech.fr Transparents Disponibles

Plus en détail

Cedric Dumoulin (C) The Java EE 7 Tutorial http://docs.oracle.com/javaee/7/tutorial/doc/

Cedric Dumoulin (C) The Java EE 7 Tutorial http://docs.oracle.com/javaee/7/tutorial/doc/ Cedric Dumoulin (C) The Java EE 7 Tutorial http://docs.oracle.com/javaee/7/tutorial/doc/ Webographie The Java EE 7 Tutorial http://docs.oracle.com/javaee/7/tutorial/doc/ Les slides de cette présentation

Plus en détail

COMMANDES SQL... 2 COMMANDES DE DEFINITION DE DONNEES... 2

COMMANDES SQL... 2 COMMANDES DE DEFINITION DE DONNEES... 2 SQL Sommaire : COMMANDES SQL... 2 COMMANDES DE DEFINITION DE DONNEES... 2 COMMANDES DE MANIPULATION DE DONNEES... 2 COMMANDES DE CONTROLE TRANSACTIONNEL... 2 COMMANDES DE REQUETE DE DONNEES... 2 COMMANDES

Plus en détail

XML et Bases de données. XMLType Oracle XML DB

XML et Bases de données. XMLType Oracle XML DB Oracle XML DB Oracle XML DB Depuis la version 9i et de façon enrichie dans la version 10g, Oracle propose des outils pour gérer des documents XML Depuis la 10g il n'y a plus d'extraction car auparavant

Plus en détail

Etude de cas PLM. Patrice TORGUET IRIT Université Paul Sabatier

Etude de cas PLM. Patrice TORGUET IRIT Université Paul Sabatier Etude de cas PLM Patrice TORGUET IRIT Université Paul Sabatier Plan Exemple PLM Répartition avec Sockets Répartition avec RMI Répartition avec CORBA Répartition avec JMS Répartition avec Java EE Améliorations

Plus en détail

1-Introduction 2. 2-Installation de JBPM 3. 2-JBPM en action.7

1-Introduction 2. 2-Installation de JBPM 3. 2-JBPM en action.7 Sommaire 1-Introduction 2 1-1- BPM (Business Process Management)..2 1-2 J-Boss JBPM 2 2-Installation de JBPM 3 2-1 Architecture de JOBSS JBPM 3 2-2 Installation du moteur JBoss JBPM et le serveur d application

Plus en détail

LES ACCES ODBC AVEC LE SYSTEME SAS

LES ACCES ODBC AVEC LE SYSTEME SAS LES ACCES ODBC AVEC LE SYSTEME SAS I. Présentation II. SAS/ACCESS to ODBC III. Driver ODBC SAS IV. Driver ODBC SAS Universel V. Version 8 VI. Références I. Présentation Introduction ODBC, qui signifie

Plus en détail

Installation et compilation de gnurbs sous Windows

Installation et compilation de gnurbs sous Windows Installation et compilation de gnurbs sous Windows Installation de l environnement de développement Code::Blocks (Environnement de développement) 1. Télécharger l installateur de Code::Blocks (version

Plus en détail

Auto-évaluation DB2 for z/os: cours de base

Auto-évaluation DB2 for z/os: cours de base Auto-évaluation DB2 for z/os: cours de base Document: f1067test.fm 22/01/2013 ABIS Training & Consulting P.O. Box 220 B-3000 Leuven Belgium TRAINING & CONSULTING INTRODUCTION AUTO-ÉVALUATION DB2 FOR Z/OS:

Plus en détail

Les procédures stockées et les fonctions utilisateur

Les procédures stockées et les fonctions utilisateur Les procédures stockées et les fonctions utilisateur Z Grégory CASANOVA 2 Les procédures stockées et les fonctions utilisateur [08/07/09] Sommaire 1 Introduction... 3 2 Pré-requis... 4 3 Les procédures

Plus en détail

COMPRENDRE LES DIFFERENTS TYPES DE CONNEXION LORS DE LA

COMPRENDRE LES DIFFERENTS TYPES DE CONNEXION LORS DE LA COMPRENDRE LES DIFFERENTS TYPES DE CONNEXION LORS DE LA DEFINITION D UNE BIBLIOTHEQUE D ACCES A UNE BASE DE DONNEES Cet article s adresse aux administrateurs SAS en charge de la mise à disposition des

Plus en détail

M. Tondeur Hervé 1/10 Licence Info Gestion - Objet ADO 1. Un tour rapide d'ado:

M. Tondeur Hervé 1/10 Licence Info Gestion - Objet ADO 1. Un tour rapide d'ado: M. Tondeur Hervé 1/10 1. Un tour rapide d'ado: ADO (ActiveX Data Object) est un composant ActiveX permettant d'accéder aux bases de données de façon beaucoup plus facile sans se soucier de tout ce qui

Plus en détail

as Architecture des Systèmes d Information

as Architecture des Systèmes d Information Plan Plan Programmation - Introduction - Nicolas Malandain March 14, 2005 Introduction à Java 1 Introduction Présentation Caractéristiques Le langage Java 2 Types et Variables Types simples Types complexes

Plus en détail

Cours 7 : Langage de définition, manipulation et contrôle des données

Cours 7 : Langage de définition, manipulation et contrôle des données Cours 7 : Langage de définition, manipulation et contrôle des données Objets d une base de données Dans un schéma Tables, vues Index, clusters, séquences, synonymes Packages, procédures, fonctions, déclencheurs

Plus en détail

Table des matières PRESENTATION DU LANGAGE DS2 ET DE SES APPLICATIONS. Introduction

Table des matières PRESENTATION DU LANGAGE DS2 ET DE SES APPLICATIONS. Introduction PRESENTATION DU LANGAGE DS2 ET DE SES APPLICATIONS Depuis SAS 9.2 TS2M3, SAS propose un nouveau langage de programmation permettant de créer et gérer des tables SAS : le DS2 («Data Step 2»). Ces nouveautés

Plus en détail

Réplication des données

Réplication des données Réplication des données Christelle Pierkot FMIN 306 : Gestion de données distribuées Année 2009-2010 Echange d information distribuée Grâce à un serveur central Une seule copie cohérente Accès à distance

Plus en détail

Présentation du module Base de données spatio-temporelles

Présentation du module Base de données spatio-temporelles Présentation du module Base de données spatio-temporelles S. Lèbre slebre@unistra.fr Université de Strasbourg, département d informatique. Partie 1 : Notion de bases de données (12,5h ) Enjeux et principes

Plus en détail

Utilisation de JAVA coté Application serveur couplé avec Oracle Forms Hafed Benteftifa www.degenio.com Novembre 2008

Utilisation de JAVA coté Application serveur couplé avec Oracle Forms Hafed Benteftifa www.degenio.com Novembre 2008 Introduction Utilisation de JAVA coté Application serveur couplé avec Oracle Forms Hafed Benteftifa www.degenio.com Novembre 2008 Forms 10g permet l utilisation du JAVA côté client et côté application

Plus en détail

APPLICATIONS JAVA. JDBC (Java DataBase Connectivity) JSP SQL (rappel) Architecture Java-JDBC-SGBD. JDBC et JSP IvMad - 2012 2

APPLICATIONS JAVA. JDBC (Java DataBase Connectivity) JSP SQL (rappel) Architecture Java-JDBC-SGBD. JDBC et JSP IvMad - 2012 2 APPLICATIONS JAVA JDBC (Java DataBase Connectivity) JSP SQL (rappel) JDBC et JSP IvMad - 2012 2 Architecture Java-JDBC-SGBD JDBC et JSP IvMad - 2012 3 Architecture Java-JDBC-SGBD Les composants de la connexion

Plus en détail

Plan. Department of Informatics

Plan. Department of Informatics Plan 1. Application Servers 2. Servlets, JSP, JDBC 3. J2EE: Vue d ensemble 4. Distributed Programming 5. Enterprise JavaBeans 6. Enterprise JavaBeans: Special Topics 7. Prise de recul critique Enterprise

Plus en détail

Architecture Orientée Service, JSON et API REST

Architecture Orientée Service, JSON et API REST UPMC 3 février 2015 Précedemment, en LI328 Architecture générale du projet Programmation serveur Servlet/TOMCAT Aujourd hui Quelques mots sur les SOA API - REST Le format JSON API - REST et Servlet API

Plus en détail

Bases de données et sites WEB

Bases de données et sites WEB Bases de données et sites WEB Cours2 : Sécurité et contrôles d accès Anne Doucet 1 Authentification Autorisation Privilèges Rôles Profils Limitations de ressources Plan Audit Contrôle d accès via les vues

Plus en détail

Rendez-vous Firebird RMLL 2007

Rendez-vous Firebird RMLL 2007 Rendez-vous Firebird RMLL 2007 Les Transactions Pierre Yager CRISALID pierre@crisalid.com Les Transactions Concepts Métriques : ACID SQL Isolement Côté Serveur Côté Client Conseils, Questions Ouvertes

Plus en détail

Module 19: Développement et déploiement des applications client/serveur TDI2 2012/2013 Formateur:M.AZZI

Module 19: Développement et déploiement des applications client/serveur TDI2 2012/2013 Formateur:M.AZZI Module 19: Développement et déploiement des applications client/serveur TDI2 2012/2013 Formateur:M.AZZI Intégrer les accès aux données dans le client en mode connecté. ADO.NET ADO.NET est constitué d un

Plus en détail

PDO : PHP Data Object 1/13

PDO : PHP Data Object 1/13 PDO : PHP Data Object 1/13 Tous ne sont que des extensions... Les fonstions mysql_* : API mysql Les fonctions mysqli_* aussi Il en est de même pour PDO PDO (avec le pilote PDO MySQL Driver et Extension

Plus en détail

Cours Web n o 7 MySQL et PHP

Cours Web n o 7 MySQL et PHP Introduction aux bases de données Cours Web n o 7 MySQL et PHP Sandrine-Dominique Gouraud (gouraud@lri.fr) Pierre Senellart (pierre@senellart.com) Semaine du 7 novembre 2005 S.-D. Gouraud, P. Senellart

Plus en détail

REAL APPLICATION CLUSTERS

REAL APPLICATION CLUSTERS Oracle upg adm 9i Claude DA COSTA Chap 11 Scalable Real Appli Clusters Page 1/10 REAL APPLICATION CLUSTERS Cash Fusion Shared server_side initialization parameter Oracle upg adm 9i Claude DA COSTA Chap

Plus en détail

A QUOI SERVENT LES BASES DE DONNÉES?

A QUOI SERVENT LES BASES DE DONNÉES? BASE DE DONNÉES OBJET Virginie Sans virginie.sans@irisa.fr A QUOI SERVENT LES BASES DE DONNÉES? Stockage des informations : sur un support informatique pendant une longue période de taille importante accès

Plus en détail

Gestion de stock pour un magasin

Gestion de stock pour un magasin Département d Informatique Université de Fribourg, Suisse http://diuf.unifr.ch Gestion de stock pour un magasin Stock online utilise ASP/MS-Access DO Thi Tra My No étudiant : 05-333-750 Travail de séminaire

Plus en détail

Généralités sur les bases de données

Généralités sur les bases de données Généralités sur les bases de données Qu est-ce donc qu une base de données? Que peut-on attendre d un système de gestion de bases de données? Que peut-on faire avec une base de données? 1 Des données?

Plus en détail

TP Contraintes - Triggers

TP Contraintes - Triggers TP Contraintes - Triggers 1. Préambule Oracle est accessible sur le serveur Venus et vous êtes autorisés à accéder à une instance licence. Vous utiliserez l interface d accés SQL*Plus qui permet l exécution

Plus en détail

EISTI. Oracle Toplink. Manuel d installation et d utilisation

EISTI. Oracle Toplink. Manuel d installation et d utilisation EISTI Oracle Toplink Manuel d installation et d utilisation VILLETTE Charles, BEQUET Pierre, DE SAINT MARTIN Cédric, CALAY-ROCHE Vincent, NAUTRE Francois 20/05/2010 Ce manuel d installation et d utilisation

Plus en détail

Programmation orientée objet et interfaces web en PHP

Programmation orientée objet et interfaces web en PHP Programmation orientée objet et interfaces web en PHP La programmation objet avec PHP5 Bases de données et interfaces web Fonctionnement des sessions Nicolas Moyroud Cemagref - UMR TETIS 26 Juin 2008 Programmation

Plus en détail

Extension SSO Java. Cette note technique décrit la configuration et la mise en œuvre du filtre de custom SSO Java.

Extension SSO Java. Cette note technique décrit la configuration et la mise en œuvre du filtre de custom SSO Java. Note technique W4 Engine Extension SSO Java Cette note technique décrit la configuration et la mise en œuvre du filtre de custom SSO Java. 1 Présentation 3 2 Custom SSO Java 4 3 Bilan 10 Sommaire Référence

Plus en détail

Bases de données Page 1 de 11. Bases de données. Prof. : Dzenan Ridjanovic

Bases de données Page 1 de 11. Bases de données. Prof. : Dzenan Ridjanovic Bases de données Page 1 de 11 1- Objectifs généraux Bases de données Prof. : Dzenan Ridjanovic acquérir les principes et concepts fondamentaux dans le domaine des bases de données; développer les connaissances

Plus en détail