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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Initiation à JAVA et à la programmation objet. raphael.bolze@ens-lyon.fr

Initiation à JAVA et à la programmation objet. raphael.bolze@ens-lyon.fr Initiation à JAVA et à la programmation objet raphael.bolze@ens-lyon.fr O b j e c t i f s Découvrir un langage de programmation objet. Découvrir l'environnement java Découvrir les concepts de la programmation

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

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

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

Architecture JEE. Objectifs attendus. Serveurs d applications JEE. Architectures JEE Normes JEE. Systèmes distribués

Architecture JEE. Objectifs attendus. Serveurs d applications JEE. Architectures JEE Normes JEE. Systèmes distribués Architecture JEE. Objectifs attendus Serveurs d applications JEE Systèmes distribués Architectures JEE Normes JEE couches logicielles, n-tiers framework JEE et design patterns 2007/02/28 Eric Hébert.eheb@yahoo.fr

Plus en détail

1. Langage de programmation Java

1. Langage de programmation Java 1. Langage de programmation Java 1.1. Définitions Langage de 3e génération le plus utilisé actuellement Portabilité : exécutable sur tout types d'ordinateurs quel que soit le système d'exploitation (Windows,

Plus en détail

Introduction aux SGBDR

Introduction aux SGBDR 1 Introduction aux SGBDR Pour optimiser une base Oracle, il est important d avoir une idée de la manière dont elle fonctionne. La connaissance des éléments sous-jacents à son fonctionnement permet de mieux

Plus en détail

Bases de Données. Stella MARC-ZWECKER. stella@unistra.u-strasbg.fr. Maître de conférences Dpt. Informatique - UdS

Bases de Données. Stella MARC-ZWECKER. stella@unistra.u-strasbg.fr. Maître de conférences Dpt. Informatique - UdS Bases de Données Stella MARC-ZWECKER Maître de conférences Dpt. Informatique - UdS stella@unistra.u-strasbg.fr 1 Plan du cours 1. Introduction aux BD et aux SGBD Objectifs, fonctionnalités et évolutions

Plus en détail

Création d une application JEE

Création d une application JEE Création d une application JEE Rédacteurs : Alexandre Baillif, Philippe Lacomme, Raksmey Phan et Michaël PLAN Date : juillet 2010 Mise à jour : Michaël PLAN Date : octobre 2014 Avertissement : - ce document

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

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

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

Auto-évaluation Aperçu de l architecture Java EE

Auto-évaluation Aperçu de l architecture Java EE Auto-évaluation Aperçu de l architecture Java EE Document: f1218test.fm 22/03/2012 ABIS Training & Consulting P.O. Box 220 B-3000 Leuven Belgium TRAINING & CONSULTING INTRODUCTION AUTO-ÉVALUATION APERÇU

Plus en détail

Forthcoming Database

Forthcoming Database DISS.ETH NO. 15802 Forthcoming Database A Framework Approach for Data Visualization Applications A dissertation submitted to the SWISS FEDERAL INSTITUTE OF TECHNOLOGY ZURICH for the degree of Doctor of

Plus en détail

La base de données XML exist. A. Belaïd

La base de données XML exist. A. Belaïd La base de données XML exist Introduction Qu est-ce-que exist? C est une base de donnée native, entièrement écrite en Java XML n est pas une base de données en soi Bien qu il possède quelques caractéristiques

Plus en détail

APIs de table pour SQL Server

APIs de table pour SQL Server 2013 D - Pratique APIs de table pour SQL Server Établissement: HEG Arc Haute école Arc Gestion Réalisé par: M. Informaticien de gestion 2009-2013 S adresse à: M.Fabrice Camus Date de début et de fin du

Plus en détail

Architectures web/bases de données

Architectures web/bases de données Architectures web/bases de données I - Page web simple : HTML statique Le code HTML est le langage de base pour concevoir des pages destinées à être publiées sur le réseau Internet ou intranet. Ce n'est

Plus en détail

PHP. Bertrand Estellon. 26 avril 2012. Aix-Marseille Université. Bertrand Estellon (AMU) PHP 26 avril 2012 1 / 214

PHP. Bertrand Estellon. 26 avril 2012. Aix-Marseille Université. Bertrand Estellon (AMU) PHP 26 avril 2012 1 / 214 PHP Bertrand Estellon Aix-Marseille Université 26 avril 2012 Bertrand Estellon (AMU) PHP 26 avril 2012 1 / 214 SQLite et PDO Base de données SQLite et PDO SQLite écrit les données relatives à la base dans

Plus en détail

Optimisations des SGBDR. Étude de cas : MySQL

Optimisations des SGBDR. Étude de cas : MySQL Optimisations des SGBDR Étude de cas : MySQL Introduction Pourquoi optimiser son application? Introduction Pourquoi optimiser son application? 1. Gestion de gros volumes de données 2. Application critique

Plus en détail

Introduction aux bases de données

Introduction aux bases de données Introduction aux bases de données Références bibliographiques Jeff Ullman,Jennifer Widom, «A First Course in Database systems», Prentice-Hall, 3rd Edition, 2008 Hector Garcia-Molina, Jeff Ullman, Jennifer

Plus en détail

COMPOSANTS DE L ARCHITECTURE D UN SGBD. Chapitre 1

COMPOSANTS DE L ARCHITECTURE D UN SGBD. Chapitre 1 1 COMPOSANTS DE L ARCHITECTURE D UN SGBD Chapitre 1 Généralité 2 Les composants principaux de l architecture d un SGBD Sont: Les processus Les structures mémoires Les fichiers P1 P2 Pn SGA Fichiers Oracle

Plus en détail

24/11/2011. Cours EJB/J2EE Copyright Michel Buffa. Plan du cours. EJB : les fondamentaux. Enterprise Java Bean. Enterprise Java Bean.

24/11/2011. Cours EJB/J2EE Copyright Michel Buffa. Plan du cours. EJB : les fondamentaux. Enterprise Java Bean. Enterprise Java Bean. Plan du cours 2 Introduction générale : fondamentaux : les fondamentaux Michel Buffa (buffa@unice.fr), UNSA 2002, modifié par Richard Grin (version 1.1, 21/11/11), avec emprunts aux supports de Maxime

Plus en détail

Bases de données cours 1

Bases de données cours 1 Bases de données cours 1 Introduction Catalin Dima Objectifs du cours Modèle relationnel et logique des bases de données. Langage SQL. Conception de bases de données. SQL et PHP. Cours essentiel pour votre

Plus en détail

Bases de données Oracle Virtual Private Database (VPD) pour la gestion des utilisateurs d applications

Bases de données Oracle Virtual Private Database (VPD) pour la gestion des utilisateurs d applications Bases de données Oracle Virtual Private Database (VPD) pour la gestion des utilisateurs d applications P.-A. Sunier, HEG-Arc Neuchâtel avec le concours de J. Greub pierre-andre.sunier@he-arc.ch http://lgl.isnetne.ch/

Plus en détail

PHP 4 PARTIE : BASE DE DONNEES

PHP 4 PARTIE : BASE DE DONNEES PHP 4 PARTIE : BASE DE DONNEES 1. Introduction 2. Présentation de MySQL 3. Principe 4. Connexion 5. Interrogation 6. Extraction des données 7. Fonctions de services 8. Traitement des erreurs 9. Travaux

Plus en détail

Olivier Mondet http://unidentified-one.net

Olivier Mondet http://unidentified-one.net T-GSI Ch.4 Le Langage SQL LDD, LCD Cet exercice guidé reprend le plan suivis lors de l intervention de formation faite pour l académie de Versailles. L objectif principal visait en la présentation du langage

Plus en détail

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

INTRODUCTION A JAVA. Fichier en langage machine Exécutable INTRODUCTION A JAVA JAVA est un langage orienté-objet pur. Il ressemble beaucoup à C++ au niveau de la syntaxe. En revanche, ces deux langages sont très différents dans leur structure (organisation du

Plus en détail

Du 10 Fév. au 14 Mars 2014

Du 10 Fév. au 14 Mars 2014 Interconnexion des Sites - Design et Implémentation des Réseaux informatiques - Sécurité et Audit des systèmes - IT CATALOGUE DE FORMATION SIS 2014 1 FORMATION ORACLE 10G 11G 10 FEV 2014 DOUALA CAMEROUN

Plus en détail

WEB page builder and server for SCADA applications usable from a WEB navigator

WEB page builder and server for SCADA applications usable from a WEB navigator Générateur de pages WEB et serveur pour supervision accessible à partir d un navigateur WEB WEB page builder and server for SCADA applications usable from a WEB navigator opyright 2007 IRAI Manual Manuel

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

PHP et mysql. Code: php_mysql. Olivier Clavel - Daniel K. Schneider - Patrick Jermann - Vivian Synteta Version: 0.9 (modifié le 13/3/01 par VS)

PHP et mysql. Code: php_mysql. Olivier Clavel - Daniel K. Schneider - Patrick Jermann - Vivian Synteta Version: 0.9 (modifié le 13/3/01 par VS) PHP et mysql php_mysql PHP et mysql Code: php_mysql Originaux url: http://tecfa.unige.ch/guides/tie/html/php-mysql/php-mysql.html url: http://tecfa.unige.ch/guides/tie/pdf/files/php-mysql.pdf Auteurs et

Plus en détail

Construire des plug-ins pour SAS Management Console SAS 9.1

Construire des plug-ins pour SAS Management Console SAS 9.1 Construire des plug-ins pour SAS Management Console SAS 9.1 Janvier 2005 Sommaire 1 INTRODUCTION... 3 1.1 OBJECTIFS... 3 1.2 PERIMETRE... 3 2 LES COMPOSANTS DE SAS MANAGEMENT CONSOLE... 4 3 LA CONSTRUCTION

Plus en détail

Tutoriel d installation de Hibernate avec Eclipse

Tutoriel d installation de Hibernate avec Eclipse Tutoriel d installation de Hibernate avec Eclipse Table des matières 1. Création de la base de données... 4 2. Installation de Hibernate Synchronizer... 5 3. Utilisation de Hibernate... 6 3.1 Création

Plus en détail

2 Chapitre 1 Introduction

2 Chapitre 1 Introduction 1 Introduction Ce livre présente les Enterprise JavaBeans 2.0 et 1.1 qui constituent la troisième et la deuxième version de la spécification des Enterprise JavaBeans. Tout comme la plate-forme Java a révolutionné

Plus en détail

Mise en œuvre des serveurs d application

Mise en œuvre des serveurs d application Nancy-Université Mise en œuvre des serveurs d application UE 203d Master 1 IST-IE Printemps 2008 Master 1 IST-IE : Mise en œuvre des serveurs d application 1/54 Ces transparents, ainsi que les énoncés

Plus en détail

Once the installation is complete, you can delete the temporary Zip files..

Once the installation is complete, you can delete the temporary Zip files.. Sommaire Installation... 2 After the download... 2 From a CD... 2 Access codes... 2 DirectX Compatibility... 2 Using the program... 2 Structure... 4 Lier une structure à une autre... 4 Personnaliser une

Plus en détail

Bases de données avancées Introduction

Bases de données avancées Introduction Bases de données avancées Introduction Dan VODISLAV Université de Cergy-Pontoise Master Informatique M1 Cours BDA Plan Objectifs et contenu du cours Rappels BD relationnelles Bibliographie Cours BDA (UCP/M1)

Plus en détail

Les transactions 1/46. 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/46. I même en cas de panne logicielle ou matérielle. I Concept de transaction. I Gestion de la concurrence : les solutions 1/46 2/46 Pourquoi? Anne-Cécile Caron Master MAGE - SGBD 1er trimestre 2014-2015 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

ADMINISTRATION DE ADOBE LIVECYCLE MOSAIC 9.5

ADMINISTRATION DE ADOBE LIVECYCLE MOSAIC 9.5 ADMINISTRATION DE ADOBE LIVECYCLE MOSAIC 9.5 Informations juridiques Copyright 2010 Adobe Systems Incorporated and its licensors. All rights reserved. Administration d Adobe LiveCycle Mosaic 9.5 13 octobre

Plus en détail

Réplication E-maj Foreign Data Wrapper PostGIS PostgreSQL-f

Réplication E-maj Foreign Data Wrapper PostGIS PostgreSQL-f PGDay Réplication E-maj Foreign Data Wrapper PostGIS PostgreSQL-f Réplication Réplications, disponibilités, durabilités Evolution dans la base de données : Postgres 8.2 : warm standby Postgres 9.0 : hot

Plus en détail

Architecture N-Tier. Ces données peuvent être saisies interactivement via l interface ou lues depuis un disque. Application

Architecture N-Tier. Ces données peuvent être saisies interactivement via l interface ou lues depuis un disque. Application Architecture Multi-Tier Traditionnellement une application informatique est un programme exécutable sur une machine qui représente la logique de traitement des données manipulées par l application. Ces

Plus en détail

27/11/12 Nature. SDK Python et Java pour le développement de services ACCORD Module(s)

27/11/12 Nature. SDK Python et Java pour le développement de services ACCORD Module(s) Propriétés du Document Source du Document SDK_accords.odt Titre du Document SDK Python et Java pour le développement de services ACCORD Module(s) PyaccordsSDK, JaccordsSDK Responsable Prologue Auteur(s)

Plus en détail

Cours Base de données relationnelles. M. Boughanem, IUP STRI

Cours Base de données relationnelles. M. Boughanem, IUP STRI Cours Base de données relationnelles 1 Plan 1. Notions de base 2. Modèle relationnel 3. SQL 2 Notions de base (1) Définition intuitive : une base de données est un ensemble d informations, (fichiers),

Plus en détail

PRODUCTS LIST (updated 11th January 2010)

PRODUCTS LIST (updated 11th January 2010) PRODUCTS LIST (updated 11th January 2010) OPERATING SYSTEMS SUN SOLARIS 10, 9, 10 B OP Application and database servers Red Hat Enterprise Linux Server 4.x and 5.x B OP Single Application Host Windows

Plus en détail

CREATION WEB DYNAMIQUE

CREATION WEB DYNAMIQUE CREATION WEB DYNAMIQUE IV ) MySQL IV-1 ) Introduction MYSQL dérive directement de SQL (Structured Query Language) qui est un langage de requêtes vers les bases de données relationnelles. Le serveur de

Plus en détail