Programmation en Java. Laboratoire de base de données. Introduction à JDBC. par Louis SWINNEN

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

Download "Programmation en Java. Laboratoire de base de données. Introduction à JDBC. par Louis SWINNEN"

Transcription

1 Département Informatique Programmation en Java Laboratoire de base de données Introduction à JDBC par Louis SWINNEN Ce document est disponible sous licence Creative Commons indiquant qu il peut être reproduit, distribué et communiqué pour autant que le nom de l auteur reste présent, qu aucune utilisation commerciale ne soit faite à partir de celui-ci et que le document ne soit ni modifié, ni transformé, ni adapté La Haute Ecole Libre Mosane (HELMo) attache une grande importance au respect des droits d auteur C est la raison pour laquelle nous invitons les auteurs dont une oeuvre aurait été, malgré tous nos efforts, reproduite sans autorisation suffisante, à contacter immédiatement le service juridique de la Haute Ecole afin de pouvoir régulariser la situation au mieux Avril 2009

2 Laboratoire de Base de données Introduction à JDBC par Louis SWINNEN 1 Introduction Comme nous vous demandons d explorer JDBC personnellement, ce document explique les notions importantes et donne des références vers la documentation Ce document détaille également l installation des gestionnaires JDBC sur une machine (votre portable, votre ordinateur personnel, ) 11 JDBC de quoi s agit-il? JDBC (Java DataBase Connectivity) est un ensemble logiciel qui permet à une application Java d établir une connexion vers une base de données Les différents éléments de cet ensemble logiciel sont décrits à la figure 1 Figure 1 : architecture JDBC 1 [1] Au sommet, nous trouvons l application Java qui souhaite communiquer avec une base de données Cette application utilise l API JDBC (ensemble de classes et de méthodes spécifiques) pour dialoguer avec la base de données Ces classes et méthodes sont identiques à toutes les bases de données L API JDBC utilise un driver ou gestionnaire JDBC pour établir la connexion avec la base de données Ce gestionnaire est spécifique au SGBD auquel on souhaite se connecter Il est, par ailleurs, fournit par le constructeur de la base de données Il en existe de plusieurs types et aujourd hui ils sont très souvent euxmêmes écrit en Java ce qui les rend portable également 1 Figure : Copyright Sun Microsystems, Inc All Rights Reserved L Swinnen,

3 12 Les gestionnaires JDBC Dans le cadre de nos laboratoires, deux systèmes de gestion de base de données sont principalement utilisés, à savoir Oracle Express Edition et SQL Server 2005 Pour ces deux SGBD, des drivers JDBC sont disponibles Oracle Express Edition : MS SQL Server 2005 : Tableau 1 : gestionnaires JDBC Le tableau 1 détaille les liens à partir desquels les différents gestionnaires JDBC peuvent être téléchargés Pour Oracle, veillez bien à choisir le gestionnaire SQLJ/JDBC 10g Release 2 (version 102xx) Il faut, au moins, télécharger les composants nommés ojdbc14jar et orai18njar Pour SQL Server, vous pouvez télécharger la version 12 du gestionnaire JDBC pour SQL Server 2005 Vous trouverez également l ensemble des gestionnaires JDBC sur chaque machine dans le répertoire C:\Program files\jdbc 13 Installation des gestionnaires JDBC La procédure d installation consiste à placer les gestionnaires JDBC dans un dossier de votre choix et ensuite de référencer ces gestionnaires Les gestionnaires JDBC prennent la forme de fichiers Jar Un fichier Jar est une archive Java pouvant contenir des composants (des classes compilées directement utilisables) Dans votre environnement de développement (par exemple sous NetBeans, Eclipse ou IntelliJ), il faut indiquer, dans votre projet, le lien vers le gestionnaire JDBC à utiliser Par exemple dans NetBeans, il faut ajouter les fichiers JAR dans votre projet Pour ce faire, dans la section Libraries (panneau de gauche), faire un clic-droit et choisir Add Jar/Folders et sélectionner les fichiers JAR nécessaires à votre application Sous Eclipse, il est possible lors de la création du projet Java d indiquer des libraires particulières Ainsi dans la fenêtre Java Settings, choisir l onglet Libraries et ensuite Add External JARs et sélectionner les fichiers JAR Si le projet est déjà créé, il est possible d ajouter les libraires en faisant un clic-droit sur le nom du projet et en choisissant Properties Ensuite, l option Java Build Path fait apparaître une série d onglets Choisir dans l onglet Librairies l option Add External JARs et sélectionner les fichiers JARs à intégrer Sous IntelliJ, il faut ajouter également les gestionnaires JDBC Pour ce faire, dans le projet (panneau de gauche), faire un clic-droit sur Libraries et choisir Jump To Source Les paramètres du projet sont alors affichés, choisir dans la section Librairies, l icône + au sommet Ensuite, il faut donner un nom à ces librairies, comme par exemple JDBC Oracle et enfin, dans le panneau de droite, choisir l option Attach Classes et choisir les librairies à ajouter En dehors de l environnement de développement, il faut modifier la variable d environnement CLASSPATH afin que celle-ci pointe vers les fichiers JAR Ainsi, sous Windows, il faut effectuer les étapes suivantes (en administrateur) : Sous Windows XP : Clic-droit sur le poste de travail, choisir Propriétés puis l onglet Avancé et cliquer sur Variables d environnement L Swinnen,

4 Sous Windows Vista : Clic-droit sur Ordinateur puis choisir Propriétés puis, dans les tâches qui apparaissent à gauche, choisir Paramètres système avancés et ensuite cliquer sur Variables d environnement Dans la section Variables système, localiser la variable PATH (qui indique le chemin de recherche par défaut) et modifiez celle-ci pour ajouter le chemin vers les fichiers systèmes Java Ainsi, si votre compilateur Java est installé dans C:\Program Files\Java\jdk160_06, ajoutez ceci à la fin de la valeur existante : ;C:\Program Files\Java\jdk160_06\bin Egalement dans la section Variables système, vérifiez si la variable CLASSPATH est définie Si ce n est pas le cas, il faut créer une nouvelle variable, sinon modifier la variable existante Il faut ici ajouter les chemins vers les différents gestionnaires JDBC installés sur votre machine Si, comme à l école, les gestionnaires sont installés dans un répertoire JDBC dans le dossier Program Files, la variable CLASSPATH doit contenir notamment le chemin suivant : C:\Program Files\JDBC\Microsoft SQL Server 2005 JDBC Driver\sqljdbc_11\fra\sqljdbcjar ; C:\Program Files\JDBC\Oracle\ojdbc14jar; C:\program files\jdbc\oracle\orai18njar Sous les systèmes basés Unix, il faut réaliser les mêmes modifications Par exemple, sous Linux, si vous avez installé le compilateur Java et les gestionnaires JDBC dans le répertoire /opt, vous devez adapter la variable PATH et CLASSPATH comme sous Windows Le plus simple est d ajouter le fichier suivant dans le répertoire /etc/profiled : Fichier /etc/profiled/javash #! /bin/bash JAVA_HOME=/opt/jdk160_06 PATH=$PATH:$JAVA_HOME/bin CLASSPATH=$CLASSPATH:/opt/JDBC/Microsoft\ SQL\ Server\ 2005\ JDBC\ Driver/ sqljdbc_11/fra/sqljdbcjar:/opt/jdbc/oracle/odjbc14jar:/opt/jdbc/oracle/ orai18njar export JAVA_HOME PATH CLASSPATH Il reste ensuite à rendre ce script exécutable soit en ajoutant la permission execute par l interface graphique, ou en entrant dans un terminal la commande suivante : chmod +x /etc/profiled/javash Une fois cette modification effectuée, il suffit de redémarrer la machine et l environnement Java est prêt à être utilisé L Swinnen,

5 2 Utilisation de JDBC Afin d illustrer l utilisation de JDBC, je propose un exemple qui sera décrit et détaillé par la suite Nous allons donc commencer par décrire la base de données considérée et puis nous détaillerons les éléments à mettre en place au travers d un exemple Enfin nous reviendrons sur quelques concepts théoriques importants dans toutes applications JDBC Nos exemples se concentreront autour des deux SGBD utilisés à l école, à savoir SQL Server et Oracle Si vous souhaitez établir des connexions vers d autres bases de données, il est important, après avoir installé le gestionnaire de base de données de bien lire la documentation afin de déterminer comment la connexion peut être établie 21 La base de données considérée Client NCLI NOM ADRESSE LOCALITE CAT COMPTE id: NCLI acc Commande NCOM DATECOM NCLI id: NCOM acc ref: NCLI acc Lignecom NCOM NPRO QCOM id: NPRO NCOM acc ref: NPRO ref: NCOM acc Produit NPRO LIBELLE PRIX QSTOCK id: NPRO acc 22 Exemple d implémentation de connexion vers Oracle Un élément important dans la mise en place d une application JDBC est la chaîne de connexion En effet, JDBC utilise une URL pour localiser le serveur de base de données Cette URL est propre au SGBD et mentionne généralement : le nom (ou l IP) du serveur de base de données, le nom de la base de données, le nom de l utilisateur et le mot de passe de connexion Dans le cas d Oracle XE (version utilisée et installée à l école), la chaîne de connexion est la suivante : La chaîne de connexion doit préciser : servername : Le nom / IP du serveur Oracle sur lequel on se connecte databasename : Le nom de la base de donnée doit être XE username : le nom de l utilisateur pour la connexion pass : le mot de passe de connexion En plus de la chaîne de connexion, il est nécessaire de mentionner à la couche JDBC le chemin vers le pilote utilisé Ce chemin est propre à chaque pilote JDBC Ainsi, pour Oracle XE, il faut mentionner comme chemin : oraclejdbcoracledriver Ce chemin sera présent dans l instruction «ClassforName» utilisé lors de la connexion 23 Exemple d implémentation de connexion vers SQL Server Un élément important dans la mise en place d une application JDBC est la chaîne de connexion En effet, JDBC utilise une URL pour localiser le serveur de base de données Cette URL est propre au SGBD et mentionne généralement : le nom (ou l IP) du serveur de base de données, le nom de la base de données, le nom de l utilisateur et le mot de passe de connexion L Swinnen,

6 Dans le cas de SQL Serveur 2005 (version utilisée et installée à l école), la chaîne de connexion est la suivante : jdbc:sqlserver://servername:1433;databasename=nombd;user=username ;password=pass La chaîne de connexion doit préciser : servername : Le nom / IP du serveur SQL Server sur lequel on se connecte databasename : le nom de la base de données à utiliser user : le nom de connexion password : le mot de passe associé pour la connexion En plus de la chaîne de connexion, il est nécessaire de mentionner à la couche JDBC le chemin vers le pilote utilisé Ce chemin est propre à chaque pilote JDBC Ainsi, pour SQL Server 2005, il faut mentionner comme chemin : commicrosoftsqlserverjdbcsqlserverdriver Ce chemin sera présent dans l instruction «ClassforName» utilisé lors de la connexion 24 Schéma classique de connexion Le schéma présenté ci-dessous (voir code 1) permet la connexion au SGBD en utilisant la couche JDBC Il faut bien sûr indiquer les éléments propres à votre environnement comme la chaîne de connexion ou le chemin vers le pilote import javasql*; ClassforName("<chemin vers pilote>") ; String connectstring = "<chaine de connexion>"; Connection conn = DriverManagergetConnection(connectString); catch(classnotfoundexception ex) { Systemoutprintln("Pilote JDBC non trouve"); catch(sqlexception ex) { exprintstacktrace(); code 1 : Schéma de connexion à la base de données Le code 1 montre le schéma de connexion Ainsi, l instruction ClassforName permet de charger le pilote SGBD Si celui-ci n est pas trouvé, une erreur de type ClassNotFoundException est levée Ensuite, un objet de type Connection est obtenu via la méthode statique DriverManagergetConnection() Grâce à l objet Connection, il sera possible d exécuter des requêtes SQL sur le SGBD Deux types de requêtes sont possibles : des requêtes retournant des résultats (principalement des requêtes de sélection) et des requêtes ne retournant aucun résultat (principalement des requêtes d ajout, de mise à jour ou de suppression) L Swinnen,

7 25 Requête de sélection Dans ce paragraphe, nous allons aborder les requêtes retournant des résultats Le schéma d exécution est présenté ci-dessous (voir code 2) import javasql*; Statement stmt = conncreatestatement(); ResultSet rs = stmtexecutequery("select NCLI, NOM, CAT, COMPTE FROM CLIENT"); while(rsnext()) { String ncli = rsgetstring("ncli"); String nom = rsgetstring("nom"); String cat = rsgetstring("cat"); float compte= rsgetfloat("compte"); rsclose(); stmtclose(); catch(sqlexception ex) { exprintstacktrace(); code 2 : exemple de sélection Dans le code 2, nous avons un exemple de sélection dans la table client Ainsi, nous effectuons la requête select ncli, nom, cat, compte from client Cette requête risque de retourner plusieurs lignes Afin de gérer ces lignes séparément, l objet ResultSet est utilisé Il s agit d un objet particulier permettant de traiter le résultat de la requête Grâce à rsnext(), il est possible de parcourir les résultats Cet appel retourne true s il y a encore un résultat à traiter ou false sinon Afin d avoir accès aux éléments sélectionnés par la requête exécutée, nous avons, dans l objet ResultSet, bons nombres de méthodes Ainsi, comme montré dans l exemple ci-dessus, la méthode getstring qui prend en paramètre le nom de la colonne voulue permet d obtenir, sous la forme d une chaîne de caractère, la valeur de cette colonne A coté de la méthode getstring, il existe bien d autres méthodes permettant d obtenir une valeur de colonne sous divers format Ainsi, getfloat permet de récupérer la valeur d une colonne sous la forme d un réel Il faut bien sûr respecter le schéma de la base de données afin de pouvoir réaliser les conversions En cas d erreur lors de l exécution de la requête, une exception de type SQLException est levée Il est primordial de capturer et traiter cette exception Une fois l exécution terminée, il convient de terminer par l appel aux méthodes close() Comme déjà dit, nous éviterons toujours des requêtes de type select * from puisque ce type de requête empêche l évolution du schéma de la base de données De plus, il serait probablement bon d accéder aux informations contenues dans la base de données depuis des vues Ainsi, le schéma de la base de données peut évoluer indépendamment de l application L Swinnen,

8 26 Requête de mise à jour Dans ce paragraphe, nous allons aborder les requêtes ne retournant aucun résultat, il s agit principalement des requêtes de mise à jour (INSERT, UPDATE, DELETE) Le schéma d exécution est présenté ci-dessous (voir code 3) import javasql*; Statement stmt = conncreatestatement(); stmtexecuteupdate("update Produit SET QSTOCK = 3 WHERE NPRO = ABC123"); stmtclose(); catch(sqlexception ex) { exprintstacktrace(); code 3 : exemple de mise à jour Dans le code 3, nous avons un exemple de mise à jour au moyen d une requête UPDATE La méthode executeupdate retourne un entier représentant le nombre de lignes altérées par la mise à jour Grâce à cette information, il est possible de vérifier si la mise à jour a bien eu lieue Comme précédemment, en cas d erreur, une exception SQLException est levée et il convient de la capturer et la gérer Une fois la fin du traitement atteint, il convient de terminer l exécution grâce à la méthode close() 27 L utilisation des requêtes préparées Il est très commode, lors de la rédaction du code, d utiliser des requêtes préparées et de garnir les différents éléments en fonction des besoins Cette façon de procéder simplifie grandement l écriture du code et assure une certaine portabilité En effet, lors de la migration vers un autre SGBD, il est nécessaire de vérifier chaque requête afin de s assurer que la syntaxe demeure correcte pour le nouveau SGBD Or, le format des dates par exemple, peut amener des problèmes : en effet, ce dernier peut varier d un SGBD à l autre Dès lors, l utilisation de requêtes préparées évite ces problèmes et rend la migration vers un autre SGBD plus aisé Le code 4 montre un exemple de mise à jour au moyen de requêtes préparées L Swinnen,

9 import javasql*; PreparedStatement pst = connpreparestatement( "INSERT INTO COMMANDE (NCOM, NCLI, DATECOM) VALUES(?,?,?)"); pstsetstring(1, "C010"); // set NCOM pstsetstring(2, "CL01"); // set NCLI SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yy"); pstsetdate(3, sdfparse("20/02/08", new ParsePosition(0)); pstexecuteupdate(); pstclose(); catch(sqlexception ex) { exprintstacktrace(); code 4 : exemple de requête préparée Une requête préparée prend la forme d un objet PreparedStatement On remarque que la requête contient plusieurs caractères «?» représentant des paramètres Grâce aux méthodes set utilisées sur l objet PreparedStatement, ces caractères seront remplacés par des valeurs Ainsi, la ligne mentionnant pstsetstring(1, "C010") remplace le 1 ier caractère «?» par la valeur C010 Ensuite, le second paramètre est remplacé par la valeur CL01 et le dernier par la date du 20 février 2008 Une fois tous les paramètres garnis, il reste à exécuter la requête Il suffit dès lors d appeler la méthode executeupdate sur cet objet pour lancer cette exécution Nous remarquons immédiatement que même en cas de changement de SGBD, le code cidessus reste valide Cela n aurait pas été nécessairement le cas si nous avions construit à la main la chaîne à exécuter Bien sûr, les requêtes préparées peuvent également être utilisées dans des requêtes de sélection Ainsi, au lieu d exécuter la méthode executeupdate, il convient d appeler la méthode executequery qui retourne un ResultSet qu il est ensuite possible de parcourir, comme vu précédemment 28 Les transactions Lorsqu il est nécessaire de regrouper plusieurs requêtes SQL au sein d une transaction (afin de profiter des propriétés ACID Atomicité, Cohérence, Isolation, Durabilité), il faut empêcher le SGBD de traiter chaque requête indépendamment Nous allons examiner le code 5 qui illustre le concept de transaction en Java L Swinnen,

10 import javasql*; connsetautocommit(false); // requete 1 Statement stmt1 = conncreatestatement(); stmt1executeupdate(); // requete 2 Statement stmt2 = conncreatestatement(); stmt2executeupdate(); stmt1close(); stmt2close(); conncommit(); connsetautocommit(true); catch(sqlexception ex1) { connrollback(); connsetautocommit(true); catch(sqlexception ex2) { /* nothing to do */ ex1printstacktrace(); code 5 : exemple de transaction Comme le montre le code 5, la création de la transaction commence par empêcher les commandes commit implicites réalisées automatiquement par le SGBD grâce à l appel de la méthode setautocommit(false) Désormais, les instructions commit devront être réalisées manuellement Ensuite, les différentes requêtes appartenant à la transaction sont exécutées Enfin, au terme de la transaction, il faut accepter les modifications au moyen de l appel à la méthode commit() Enfin, il convient de revenir à l état initial en demandant au SGBD de réaliser automatiquement les commit après chaque requête via l exécution de setautocommit(true) Attention! Comme le montre le code 5, il convient de compléter la gestion des erreurs pour appeler la méthode rollback() (annulation de toutes les modifications consécutives à la transaction) et retourner à l état initial au moyen de setautocommit(true) Comme l exécution de ces méthodes peut entraîner une exception de type SQLException, nous voyons qu un nouveau bloc try catch est nécessaire dans le bloc catch précédent L Swinnen,

11 3 Quelques erreurs courantes 31 Séparation des couches Il est important de bien séparer les couches logiques de votre programme Ainsi, la couche accès BD est la seule à utiliser la couche JDBC et accéder à la base de données Il faut donc prendre l habitude de : masquer et traiter les erreurs de type SQLException car celles-ci ne devraient jamais être transmises à une autre couche o vous pouvez choisir de renvoyer un état ou une exception que vous avez créée vous même o Evitez les blocs try catch dont l exception capturée est Exception et dont le contenu est vide, cela montre clairement que votre programmation n est pas achevée retourner les informations sous la forme de données de l application Ne retournez donc pas de ResultSet ou autre chose provenant de JDBC Vous pouvez : o Utilisez un conteneur pour assembler les données (liste, map, set) o Modéliser directement votre information Par exemple, retourner un client ou un produit Il faut pour cela définir l objet Modèle et garnir les données en fonction de ce qui est observé dans la base de données C est probablement la manière la plus propre Ainsi, vous concentrez les informations et requêtes SQL au niveau de la couche accès BD uniquement 32 Indépendance par rapport au modèle Prenez également l habitude d être indépendant du SGBD Pour ce faire, il convient de : Eviter à tout prix les requêtes de type select * from, car en cas de modification du schéma, votre couche accès BD doit être adaptée Accéder à la base de données au travers de vues C est une autre façon de «prendre de la distance» par rapport au schéma de la BD (pour autant que votre vue n utilise pas un select * from) 33 Découpe selon les fonctionnalités Il arrive également très souvent que les étudiants construisent les méthodes de la couche accès BD en fonction des requêtes et non des fonctionnalités Ainsi, Il est plus judicieux de prévoir des fonctionnalités complètes : ajout d une commande par exemple qui peut comporter plusieurs requêtes : vérifier l état du stock, enregistrer les lignes de commande et enregistrer la commande Lorsqu on découpe en fonctionnalité, il est également nécessaire de prévoir des transactions pour s assurer que l opération est effectuée complètement, ou pas du tout Pour rappel, une transaction en JDBC débute avec l instruction setautocommit(false) et se termine par un commit ou un rollback suivi de l instruction setautocommit(true) o En conséquence, il ne faut pas utiliser BEGIN TRANSACTION et END TRANSACTION! L Swinnen,

12 4 Exemple d une couche d accès BD Supposons que nous devions construire une application JAVA capable de réaliser l enregistrement d une nouvelle commande, supprimer une commande existante, consulter les commandes d un client et permettre l approvisionnement du stock Ces différentes fonctionnalités doivent être programmées au niveau de la couche accès BD Ainsi, l enregistrement d une nouvelle commande doit : 1 Créer un nouvel enregistrement dans la table commande pour le client concerné 2 Créer les lignes de commande en fonction des demandes du client 3 Vérifier que le stock actuel peut satisfaire la commande, sinon la rejeter La suppression de la commande existante doit : 1 Supprimer toutes les lignes de commandes liées à cette commande 2 Supprimer la commande concernée La consultation des commandes d un client doit permettre d obtenir toutes les commandes de ce client Il faut, en outre, obtenir les détails (ie les lignes de commande) en relation avec ces commandes L approvisionnement du stock permet de mettre à jour le stock d un produit donné Comme nous le voyons, toutes ces fonctionnalités entraînent la présence de transaction afin d assurer l atomicité et la cohérence de la base de données L exemple ci-dessous comprend à la fois la couche accès BD qui contient les requêtes SQL et la programmation JDBC mais également les objets modèles comme Commande, Produit, Client, LigneCommande Enfin, un programme de test est également donné en guise d exemple Il s agit bien sûr d un exemple d implantation et non d une quelconque démarche à suivre Ainsi, cet exemple pourrait être amélioré par l utilisation d exception particulière afin de signaler le type d erreur rencontré, réaliser davantage de vérification des données reçues et obtenue de la base de données, exploiter des vues plutôt que les tables directement Je laisse le soin au lecteur de corriger et améliorer ce code L Swinnen,

13 fichier BDAccessjava (couche accès BD) package BD; import BOCommande; import BOLigneCommande; import BOProduit; import javasql*; import javautillist; import javautilarraylist; /** * Created by IntelliJ IDEA * User: Louis SWINNEN * Date: 08-avr-2009 * Time: 21:27:37 */ public class BDAccess { public static final String[] CONN_STR = { "jdbc:sqlserver://<servername>:1433;databasename=<dbname>;user=<username>;password=<passwd>", public static final String[] CLASS_STR = { "commicrosoftsqlserverjdbcsqlserverdriver", "oraclejdbcoracledriver"; public static final int MSSQL = 0; public static final int ORACLE = 1; private String servername; private String dbname; private String username; private String password; private boolean isconnected = false; private Connection dbconnection = null; public BDAccess() { /* default contructor */ public BDAccess(String _servername, String _dbname, String _username, String _pass) { servername = _servername; dbname = _dbname; username = _username; password = _pass; public boolean connect(int _dbtype) { ClassforName(CLASS_STR[_dbType]); String connstr = CONN_STR[_dbType]replaceAll("<serverName>", servername)replaceall("<dbname>", dbname)replaceall("<username>", username)replaceall("<passwd>", password); dbconnection = DriverManagergetConnection(connStr); isconnected = true; return true; catch(classnotfoundexception ex) { exprintstacktrace(); catch(sqlexception ex) { exprintstacktrace(); catch(arrayindexoutofboundsexception ex) { Systemoutprintln("[BDAccess][connect] dbtype not supported"); public boolean disconnect() { if(isconnected) { dbconnectionclose(); return true; catch(sqlexception ex) { exprintstacktrace(); else return true; public boolean ajoutecommande(commande _cmd) { Statement stmt; PreparedStatement pst; L Swinnen,

14 ResultSet rs; if(! isconnected) /* *** 1 Start transaction *** */ dbconnectionsetautocommit(false); /* *** 2 CREATE COMMANDE *** */ pst = dbconnectionpreparestatement("insert INTO commande(ncom, NCLI, DATECOM) VALUES (?,?,?)"); pstsetstring(1, _cmdgetnumerocommande()); pstsetstring(2, _cmdgetnumeroclient()); pstsetdate(3, new javasqldate(_cmdgetdatecommande()gettime())); pstexecuteupdate(); pstclose(); /* *** 3 CREATE LIGNECOM AND DECREASE STOCK *** */ for(int i=0; i<_cmdgetnombreligne(); ++i) { LigneCommande lc = _cmdgetlignecommande(i); /* *** 3a DECREASE STOCK *** */ stmt = dbconnectioncreatestatement(); rs = stmtexecutequery("select QSTOCK FROM Produit WHERE NPRO = '" + lcgetnumeroproduit()+"'"); if(rsnext()) { /* only 1 row because select query on primary key */ int qte = rsgetint("qstock"); if(qte - lcgetqtecommandee() < 0) { /* stock is too low -> aborting */ dbconnectionrollback(); dbconnectionsetautocommit(true); rsclose(); stmtclose(); stmt = dbconnectioncreatestatement(); stmtexecuteupdate("update Produit SET QSTOCK=" + (qte lcgetqtecommandee()) + " WHERE NPRO='" + lcgetnumeroproduit()+"'"); else { /* no row? aborting! */ dbconnectionrollback(); dbconnectionsetautocommit(true); /* *** 3b CREATE LIGNECOMMANDE *** */ stmt = dbconnectioncreatestatement(); stmtexecuteupdate("insert INTO LIGNECOM(NCOM, NPRO, QCOM) VALUES ('" + lcgetnumerocommande() + "','"+ lcgetnumeroproduit() + "',"+lcgetqtecommandee()+ ")"); stmtclose(); /* *** 4 End of Transaction *** */ dbconnectioncommit(); dbconnectionsetautocommit(true); return true; catch(sqlexception ex) { exprintstacktrace(); dbconnectionrollback(); dbconnectionsetautocommit(true); catch (SQLException e) { public boolean supprimecommande(commande _cmd) { PreparedStatement pst; Statement stmt; if(!isconnected) L Swinnen,

15 /* *** 1 Start transaction *** */ dbconnectionsetautocommit(false); /* *** 2 Delete ALL lignecom from this commande *** */ pst = dbconnectionpreparestatement("delete FROM LIGNECOM WHERE NCOM=?"); pstsetstring(1, _cmdgetnumerocommande()); pstexecuteupdate(); pstclose(); /* *** 3 Delete requested commande *** */ pst = dbconnectionpreparestatement("delete FROM COMMANDE WHERE NCOM=?"); pstsetstring(1, _cmdgetnumerocommande()); pstexecuteupdate(); pstclose(); /* *** 4 End of Transaction *** */ dbconnectioncommit(); dbconnectionsetautocommit(true); return true; catch(sqlexception ex) { exprintstacktrace(); dbconnectionrollback(); dbconnectionsetautocommit(true); catch (SQLException e) { public Produit obtenirproduit(string _npro) { Produit p = new Produit(); PreparedStatement pst; ResultSet rs; pst = dbconnectionpreparestatement("select NPRO, LIBELLE, PRIX, QSTOCK FROM Produit WHERE NPRO=?"); pstsetstring(1, _npro); rs = pstexecutequery(); if(rsnext()) { psetnumero(_npro); psetlibelle(rsgetstring("libelle")); psetprix(rsgetint("prix")); psetstock(rsgetint("qstock")); return p; else return null; /* aucun produit trouvé */ catch(sqlexception ex) { exprintstacktrace(); return null; public boolean modifieproduit(produit _prod) { PreparedStatement pst; if(_prodgetnumero() == null) pst = dbconnectionpreparestatement("update PRODUIT SET LIBELLE=?, PRIX=?, QSTOCK=? WHERE NPRO=?"); pstsetstring(1, _prodgetlibelle()); pstsetint(2, _prodgetprix()); pstsetint(3, _prodgetstock()); pstsetstring(4, _prodgetnumero()); pstexecuteupdate(); pstclose(); return true; catch(sqlexception ex) { exprintstacktrace(); public List<Commande> obtenircommandeclient(string _ncli) { List<Commande> liste = new ArrayList<Commande>(); L Swinnen,

16 if(_ncli == null) return null; /* *** TASK 1: Find all 'Commandes' *** */ ResultSet listecommande; PreparedStatement pstcommande = dbconnectionpreparestatement("select NCOM, NCLI, DATECOM FROM COMMANDE WHERE NCLI=?"); pstcommandesetstring(1, _ncli); listecommande = pstcommandeexecutequery(); while(listecommandenext()) { Commande cmd = new Commande(listeCommandegetString("NCOM"), listecommandegetstring("ncli"), listecommandegetdate("datecom")); /* *** TASK 2: Find all 'LigneCom' for the 'commande' *** */ ResultSet listeligne; PreparedStatement pstlignecom = dbconnectionpreparestatement("select NCOM, NPRO, QCOM FROM LIGNECOM WHERE NCOM=?"); pstlignecomsetstring(1, cmdgetnumerocommande()); listeligne = pstlignecomexecutequery(); while(listelignenext()) { cmdajoutelignecommande(listelignegetstring("npro"), listelignegetint("qcom")); listeligneclose(); listeadd(cmd); listecommandeclose(); return liste; catch(sqlexception ex) { exprintstacktrace(); return null; public String getservername() { return servername; public String getdbname() { return dbname; public String getusername() { return username; public String getpassword() { return password; public boolean isconnected() { return isconnected; public void setservername(string _servername) { servername = _servername; public void setdbname(string _dbname) { dbname = _dbname; public void setusername(string _username) { username = _username; public void setpassword(string _pass) { password = _pass; L Swinnen,

17 fichier Clientjava (couche traitement Business Object) package BO; /** * Created by IntelliJ IDEA * User: Louis SWINNEN * Date: 08-avr-2009 * Time: 23:10:32 */ public class Client { private String numclient; private String nom; private String adresse; private String localite; private String categorie; private float compte; public Client() { public Client(String _ncli, String _nom, String _adr, String _loc, String _cat, float _cpt ) { numclient = _ncli; nom = _nom; adresse = _adr; localite = _loc; categorie = _cat; compte = _cpt; public String getnumero() { return numclient; public String getnom() { return nom; public String getadresse() { return adresse; public String getlocalite() { return localite; public String getcategorie() { return categorie; public float getcompte() { return compte; public void setnumero(string _num) { numclient = _num; public void setnom(string _nom) { nom = _nom; public void setadresse(string _adr) { adresse = _adr; public void setlocalite(string _loc) { localite = _loc; public void setcategorie (String _cat) { categorie = _cat; public void setcompte(float _cpt) { compte = _cpt; fichier Produitjava (couche traitement Business Object) package BO; /** * Created by IntelliJ IDEA * User: Louis SWINNEN * Date: 08-avr-2009 * Time: 23:17:44 */ public class Produit { private String numproduit; private String libelle; private int prix; private int qtestock; public Produit() { public Produit(String _num, String _lib, int _prix, int _qtestock) { numproduit = _num; libelle = _lib; prix = _prix; qtestock = _qtestock; public String getnumero() { return numproduit; public String getlibelle() { return libelle; public int getprix() { return prix; public int getstock() { return qtestock; public void setnumero(string _num) { numproduit = _num; public void setlibelle(string _lib) { libelle = _lib; public void setprix(int _prix) { prix = _prix; public void setstock(int _stock) { qtestock = _stock; public String tostring() { return numproduit + ":" + libelle + ":" + prix + ":" + qtestock; L Swinnen,

18 fichier Commandejava (couche traitement Business Object) package BO; import javautildate; import javautillist; import javautilarraylist; import javautiliterator; /** * Created by IntelliJ IDEA * User: Louis SWINNEN * Date: 08-avr-2009 * Time: 23:25:01 */ public class Commande { private String numcommande; private String numclient; private Date datecommande; private List<LigneCommande> liste = new ArrayList<LigneCommande>(); public Commande() { public Commande(String _numcommande, String _numclient, Date _datecommande) { numcommande = _numcommande; numclient = _numclient; datecommande = _datecommande; public void ajoutelignecommande(lignecommande _lignecom) { listeadd(_lignecom); public void ajoutelignecommande(string _numproduit, int _qtecommandee) { listeadd(new LigneCommande(numCommande, _numproduit, _qtecommandee)); public LigneCommande supprimelignecommande(int _index) { if(_index < listesize()) { return listeremove(_index); else return null; public LigneCommande getlignecommande(int _index) { if(_index < listesize()) { return listeget(_index); else return null; public String getnumerocommande() { return numcommande; public String getnumeroclient() { return numclient; public Date getdatecommande() { return datecommande; public int getnombreligne() { return listesize(); public void setnumerocommande(string _num) { numcommande = _num; public void setnumeroclient(string _num) { numclient = _num; public void setdatecommande(date _date) { datecommande = _date; public String tostring() { String result = numcommande + ":" + numclient + ":"+datecommande; Iterator<LigneCommande> it = listeiterator(); while(ithasnext()) { LigneCommande lc = itnext(); result = result + lc; return result; L Swinnen,

19 fichier LigneCommandejava (couche traitement Business Object) package BO; /** * Created by IntelliJ IDEA * User: Louis SWINNEN * Date: 08-avr-2009 * Time: 23:26:36 */ public class LigneCommande { private String numcommande; private String numproduit; private int qtecommandee; public LigneCommande() { public LigneCommande(String _numcommande, String _numproduit, int _qte) { numcommande = _numcommande; numproduit = _numproduit; qtecommandee = _qte; public String getnumerocommande() { return numcommande; public String getnumeroproduit() { return numproduit; public int getqtecommandee() { return qtecommandee; public void setnumerocommande(string _num) { numcommande = _num; public void setnumeroproduit(string _num) { numproduit = _num; public void setqtecommandee(int _qte) { qtecommandee = _qte; public String tostring() { return "[" + numcommande + ":" + numproduit + ":" + qtecommandee + "]"; fichier Programmejava (Programme de test AccesBD) import BDBDAccess; import BOCommande; import BOProduit; import javatextsimpledateformat; import javatextparseposition; /** * Created by IntelliJ IDEA * User: Louis SWINNEN * Date: 08-avr-2009 * Time: 22:40:39 */ public class Programme { BDAccess bda; public Programme() { bda = new BDAccess(" ", "XE", "clicmd", "clicmd"); // bda = new BDAccess(" ", "clicmd", "info", "info"); SQL SERVER // if(bdaconnect(bdaccessmssql)) { if(bdaconnect(bdaccessoracle)) { Systemoutprintln("Connexion établie"); SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yy"); Commande cmd = new Commande("C190", "B112",sdfparse("09/04/09", new ParsePosition(0))); cmdajoutelignecommande("pa60", 10); cmdajoutelignecommande("pa45", 15); cmdajoutelignecommande("cs264", 100); cmdajoutelignecommande("ps222", 200); Commande cmd2 = new Commande("C190", null, null); if(bdaajoutecommande(cmd) ) Systemoutprintln("Ajout OK"); else Systemoutprintln("Ajout KO!!"); if(bdasupprimecommande(cmd2)) Systemoutprintln("Suppression OK"); else Systemoutprintln("Suppression KO!!"); Systemoutprintln(bdaobtenirProduit("CS264")); Systemoutprintln(bdaobtenirCommandeClient("C400")); L Swinnen,

20 Produit p = bdaobtenirproduit("pa60 "); psetstock(pgetstock() + 20); if(bdamodifieproduit(p)) Systemoutprintln("[produit] OK"); else Systemoutprintln("[produit] KO"); bdadisconnect(); else { Systemoutprintln("Connexion perdue!"); public static void main(string[] args) { new Programme(); L Swinnen,

21 Bibliographie et références [1] JDBC Overview, Sun Microsystem, consulté en juin 2008 [2] Getting Started with JDBC API, Sun Microsystem, consulté en juin 2008 [3] C S Hortsmann et G Cornell, Au cœur de Java 2 : Notions fondamentales (Vol 1), CampusPress, Paris, 2004 [4] C S Hortsmann et G Cornell, Au cœur de Java 2 : Fonctions avancées (Vol 2), CampusPress, Paris, 2004 Information de Copyright Oracle TM, SQLJ TM, Oracle Express Edition TM are registered trademarks of Oracle Corporation and/or its affiliates Java TM, JDBC TM, Netbeans TM are trademarks or registered trademarks of Sun Microsystems, Inc or its subsidiaries in the United States and other countries Eclipse Copyright Eclipse contributors and others 2000, 2009 All rights reserved Eclipse is a trademark of Eclipse Foundation Inc IntelliJ IDEA JetBrains sro All rights reserved Microsoft, Microsoft SQL Server, MS SQL Server, SQL Server 2005 are trademarks of Microsoft Corporation and/or its affiliates Tous les noms et marques des produits cités sont des marques déposées par leurs producteurs respectifs L Swinnen,

Programmation orientée objet en langage JAVA

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

Plus en détail

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

Programmation orientée objet en langage JAVA

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

Plus en détail

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

Java et les bases de données

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

Plus en détail

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

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

JDBC. Daniel Tschirhart : Programmation Java V1.35 1.1

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

Plus en détail

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

625 Programmation JDBC INTRODUCTION ARCHITECTURES

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

Plus en détail

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

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

Plus en détail

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

Interface Java Oracle : JDBC

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

Plus en détail

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

Gestion des transactions

Gestion des transactions 8 Gestion des transactions Au sommaire de ce chapitre U Problèmes associés à la gestion des transactions U Choisir une implémentation de gestionnaire de transactions U Gérer les transactions par programmation

Plus en détail

Licence Professionnelle Développeur Web Programmation Orientée Objets Gestion de comptes en banque (Philippe.Genoud@imag.fr)

Licence Professionnelle Développeur Web Programmation Orientée Objets Gestion de comptes en banque (Philippe.Genoud@imag.fr) Grenoble 1 IMA Informatique & Mathématiques Appliquées UNIVERSITE JOSEPH FOURIER Sciences, Technologie, Médecine Licence Professionnelle Développeur Web Programmation Orientée Objets Gestion de comptes

Plus en détail

Travaux Pratiques : Connexion et accès à la Base De Données

Travaux Pratiques : Connexion et accès à la Base De Données MODULE : Intégration des données Professeur : Mr Tallard Travaux Pratiques : Connexion et accès à la Base De Données Kamissi MOHAMED Sommaire 1. Présentation de l énoncé... 3 2. Connexion à la base de

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

Tp2 Emacs Développement Web

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

Plus en détail

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

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

Plus en détail

Lot 1 - Migration du serveur de base de données

Lot 1 - Migration du serveur de base de données Situation Rectiline Lot 1 - Migration du serveur de base de données Table des matières Lot 1 - Migration du serveur de base de données...1 Mise à jour du système Debian 6 :...2 Installation de PostgreSQL:...5

Plus en détail

Projet d Etude et de Développement

Projet d Etude et de Développement Projet d Etude et de Développement PokerServer Guide d installation Auteurs: Lucas Kerdoncuff Balla Seck Rafik Ferroukh Xan Lucu Youga MBaye Clients: David Bromberg Laurent Réveillère March 28, 2012 Contents

Plus en détail

TP SPRING. https ://lipn.univ-paris13.fr/ fortier/enseignement/spring/tp/

TP SPRING. https ://lipn.univ-paris13.fr/ fortier/enseignement/spring/tp/ Institut Galilée Année 2015-2016 TP SPRING Programmation et Logiciels sûrs Master 2 PLS Résumé L objectif de ce TP est d être capable de réaliser une application Java de gestion de location de véhicules,voiture

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

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

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

Plus en détail

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

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

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

Plus en détail

La programmation Orientée Objet 420-PK4-SL

La programmation Orientée Objet 420-PK4-SL La programmation Orientée Objet Installation de l environnement 420-PK4-SL Comment Java peut-il communiquer avec Oracle? Les moteurs de banque de données sont en général des services fonctionnant sous

Plus en détail

STATISTICA Version 12 : Instructions d'installation

STATISTICA Version 12 : Instructions d'installation STATISTICA Version 12 : Instructions d'installation STATISTICA Entreprise (Small Business Edition) Remarques 1. L'installation de STATISTICA Entreprise (Small Business Edition) s'effectue en deux temps

Plus en détail

TD n 1 : Architecture 3 tiers

TD n 1 : Architecture 3 tiers 2008 TD n 1 : Architecture 3 tiers Franck.gil@free.fr 27/10/2008 1 TD n 1 : Architecture 3 tiers 1 INTRODUCTION Ce TD, se propose de vous accompagner durant l installation d un environnement de développement

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

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

LINQ to SQL. Version 1.1

LINQ to SQL. Version 1.1 LINQ to SQL Version 1.1 2 Chapitre 03 - LINQ to SQL Sommaire 1 Introduction... 3 1.1 Rappels à propos de LINQ... 3 1.2 LINQ to SQL... 3 2 LINQ to SQL... 3 2.1 Importer des tables... 3 2.1.1 Le concepteur

Plus en détail

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

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

Plus en détail

STATISTICA - Version 10

STATISTICA - Version 10 STATISTICA - Version 10 Instructions d'installation de STATISTICA Entreprise pour une Utilisation sous Terminal Server et Citrix Remarques : 1. Ces instructions s'appliquent à une installation sous Terminal

Plus en détail

Comment de marrer un projet Intellij Idea utilisant une interface graphique?

Comment de marrer un projet Intellij Idea utilisant une interface graphique? Comment de marrer un projet Intellij Idea utilisant une interface graphique? Intellij Idea est un éditeur Java qui permet de réaliser des interfaces graphiques en utilisant les librairies de swing. Voici

Plus en détail

Créer une simple application Java avec ECLIPSE. Par Ahcène BOUNCEUR

Créer une simple application Java avec ECLIPSE. Par Ahcène BOUNCEUR Créer une simple application Java avec ECLIPSE Par Ahcène BOUNCEUR Janvier 2005 INTRODUCTION Dans cet exemple nous allons vous montrer comment peut-on créer une simple application Java en utilisant l IDE

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

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

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

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

Plus en détail

Java EE Approfondi - Cours 2. Cours de 2 e année ingénieur Spécialisation «Génie Informatique»

Java EE Approfondi - Cours 2. Cours de 2 e année ingénieur Spécialisation «Génie Informatique» Java EE Approfondi - Cours 2 Cours de 2 e année ingénieur Spécialisation «Génie Informatique» Présentation Lier l'orienté objet et la base de données relationnelle peut être lourd et consommateur en temps.

Plus en détail

Introduction au débogage avec Eclipse

Introduction au débogage avec Eclipse Introduction au débogage avec Eclipse C. Pain-Barre et H. Garreta IUT INFO Année 2006-2007 1 Notion de debogage Tout développeur est confronté un jour à un programme qui plante pour une raison apparemment

Plus en détail

Salvia Liaison Financière. Manuel d installation version 15.00 Pour les professionnels des collectivités locales et de l habitat social

Salvia Liaison Financière. Manuel d installation version 15.00 Pour les professionnels des collectivités locales et de l habitat social Salvia Liaison Financière Manuel d installation version 15.00 Pour les professionnels des collectivités locales et de l habitat social Sommaire 1. Préambule... 3 2. Introduction... 3 3. Création de la

Plus en détail

Cours: BD et Environnement Distribuées

Cours: BD et Environnement Distribuées UNIVERSITÉ DE BOURGOGNE UFR Sciences et Techniques Cours: BD et Environnement Distribuées TP 4 - Mapping Objet Relationnel Préparé par: MATTA Elie et al. Copyright 2010-2011, eliematta.com. All rights

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

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

JMP 9 Guide de l administrateur pour les versions Windows et Macintosh sous licence annuelle

JMP 9 Guide de l administrateur pour les versions Windows et Macintosh sous licence annuelle JMP 9 Guide de l administrateur pour les versions Windows et Macintosh sous licence annuelle La référence bibliographique correcte pour ce manuel est la suivante : SAS Institute Inc. 2010. JMP 9 Guide

Plus en détail

VAMT 3. Activation de produits Microsoft

VAMT 3. Activation de produits Microsoft VAMT 3 Activation de produits Microsoft Rédacteurs : Stéphan CAMMARATA Objet : Cette documentation n a pas pour vocation d expliquer le concept VAMT en détail, mais de faciliter la migration vers VAMT3

Plus en détail

FileMaker 12. Guide ODBC et JDBC

FileMaker 12. Guide ODBC et JDBC FileMaker 12 Guide ODBC et JDBC 2004-2012 FileMaker, Inc. Tous droits réservés. FileMaker, Inc. 5201 Patrick Henry Drive Santa Clara, California 95054 FileMaker et Bento sont des marques commerciales de

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

MISE EN PLACE D UN SERVEUR FTP

MISE EN PLACE D UN SERVEUR FTP FILEZILLA SERVEUR MISE EN PLACE D UN SERVEUR FTP SOUS WINDOWS FOURALI Mohamed Introduction Le serveur FTP, File Transfer Protocol, permet comme son nom l'indique de transférer des fichiers par Internet

Plus en détail

Introduction à Eclipse

Introduction à Eclipse Introduction à Eclipse Eclipse IDE est un environnement de développement intégré libre (le terme Eclipse désigne également le projet correspondant, lancé par IBM) extensible, universel et polyvalent, permettant

Plus en détail

Travaux pratiques : EJB avec JBoss 5 + Java 6 + Eclipse

Travaux pratiques : EJB avec JBoss 5 + Java 6 + Eclipse Travaux pratiques : EJB avec JBoss 5 + Java 6 + Eclipse Introduction Le but de ce TP est de programmer une application à la norme EJB en utilisant le serveur d application JBoss. Matériel requis - JBoss

Plus en détail

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

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

Plus en détail

Encryptions, compression et partitionnement des données

Encryptions, compression et partitionnement des données Encryptions, compression et partitionnement des données Version 1.0 Grégory CASANOVA 2 Compression, encryption et partitionnement des données Sommaire 1 Introduction... 3 2 Encryption transparente des

Plus en détail

Java Avancé - Cours 1

Java Avancé - Cours 1 Java avancé - cours 1 1/8 Java Avancé - Cours 1 Plan 1 Recevoir et émettre des données simples 1 1.1 Comment récupérer une page Web.......................................... 1 1.2 Socket : l objet qui

Plus en détail

Travaux pratiques 8.4.3 Analyse de la vulnérabilité

Travaux pratiques 8.4.3 Analyse de la vulnérabilité Travaux pratiques 8.4.3 Analyse de la vulnérabilité ATTENTION : ces travaux pratiques peuvent violer les mesures de sécurité juridiques et organisationnelles. L analyseur de sécurité téléchargé dans ces

Plus en détail

TP : BDA Bases de Données Avacées. M1 2012-2013 L. Kahloul

TP : BDA Bases de Données Avacées. M1 2012-2013 L. Kahloul TP : BDA Bases de Données Avacées M1 2012-2013 L. Kahloul 1 Pré-requis 1. Des connaissances en Java (POO); 2. (on a mis quelques cours pour les 2LMD, vous pouvez les consulter) 3. Installer le netbean:

Plus en détail

Compétence (niveau moyen) Java J2EE - 2014

Compétence (niveau moyen) Java J2EE - 2014 Compétence (niveau moyen) Java J2EE - 2014 «Mars-Mai 2014. Réf : JAVA J2EE Version 1 Page 1 sur 23 Sommaire CONTEXTE DE LA REMISE A NIVEAU JAVA J2EE EN AUTOFORMATION... 3 1. UTILISATION DE ECLIPSE KEPLER

Plus en détail

Guide installation d Itium Administration Services

Guide installation d Itium Administration Services Guide installation d Itium Administration Services 10/10/2007 Copyright 2006-2007 IMPACT TECHNOLOGIES IMPACT TECHNOLOGIES se réserve le droit de modifier à tout moment le contenu de ce document. Bien que

Plus en détail

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

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

Plus en détail

Installation de FRAMIGEST 1.3 et supe rieure.

Installation de FRAMIGEST 1.3 et supe rieure. Installation de FRAMIGEST 1.3 et supe rieure. Installation avec Serveur WINDOWS XP : utilisez le manuel spécifique à Windows XP Avant de commencer, vérifiez que la session Windows sous laquelle vous vous

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

Documentation Talend. Charly Riviere CDG35

Documentation Talend. Charly Riviere CDG35 Documentation Talend Charly Riviere CDG35 1. Présentation générale Talend est un ETL pour "Extract Transform Load". Comme son nom l'indique il permet d'extraire des données pour ensuite les transformer

Plus en détail

FileMaker 8. Installation des pilotes clients ODBC et JDBC pour FileMaker 8

FileMaker 8. Installation des pilotes clients ODBC et JDBC pour FileMaker 8 FileMaker 8 Installation des pilotes clients ODBC et JDBC pour FileMaker 8 2004-2005 FileMaker, Inc. Tous droits réservés. FileMaker, Inc. 5201 Patrick Henry Drive Santa Clara, California 95054, Etats-Unis

Plus en détail

2.Créer les pages PHP pour consulter et mettre à jour la table annuaire

2.Créer les pages PHP pour consulter et mettre à jour la table annuaire Université Nice Sophia Antipolis 2007-2008 LPSIL UE SIL-TC3-P1 Module: OSI, INTERNET ET PROGRAMMATION WEB TP 5 Annexe- Utilisation d ORACLE Objectif : Base de Donnée sous ORACLE et PHP Correction : la

Plus en détail

W4 EXTENSION BUS TUTORIEL - DEVELOPPEMENT DE CONNECTEURS. Référence: W4XT_TUTORIAL_020_FR

W4 EXTENSION BUS TUTORIEL - DEVELOPPEMENT DE CONNECTEURS. Référence: W4XT_TUTORIAL_020_FR W4 EXTENSION BUS TUTORIEL - DEVELOPPEMENT DE CONNECTEURS Référence: W4XT_TUTORIAL_020_FR Les prochaines mises à jour de ce document seront disponibles sur www.myw4.com W4 EXTENSION BUS TUTORIEL - DEVELOPPEMENT

Plus en détail

RAPPORT DU PREMIER MINI PROJET «FORUM DE CHAT» Novembre 2005

RAPPORT DU PREMIER MINI PROJET «FORUM DE CHAT» Novembre 2005 Oussama ELKACHOINDI Wajdi MEHENNI RAPPORT DU PREMIER MINI PROJET «FORUM DE CHAT» Novembre 2005 Sommaire I. Préliminaire : Notice d exécution et mode opératoire...4 II. Architecture globale de l application...5

Plus en détail

Installation de FRAMIGEST 1.3 et supe rieure.

Installation de FRAMIGEST 1.3 et supe rieure. Installation de FRAMIGEST 1.3 et supe rieure. Installation Sur Windows XP Avant de commencer, vérifiez que la session Windows sous laquelle vous vous trouvez dispose de droits administrateur, et est verrouillée

Plus en détail

Chapitre III : implémentation du système GML

Chapitre III : implémentation du système GML I. Introduction Après avoir établi une étude conceptuelle de notre système, nous passons à l implémentation de l application définis et détaillée au chapitre précédent tout en présentant les outils utilisés

Plus en détail

Symphony. I. Base de données Oracle XE 11g : défaire le dimensionnement de la bdd... 40

Symphony. I. Base de données Oracle XE 11g : défaire le dimensionnement de la bdd... 40 Symphony Procédures d installation de Symphony avec la BDD Oracle en local et configuration de la BDD avec l application SQL Developer (BDD installée manuellement) 1. Avant installation... 2 2. Les manuels

Plus en détail

Patrons de conceptions problème solution Design Patterns GoF

Patrons de conceptions problème solution Design Patterns GoF - Patrons de conceptions pour la programmation orientée objet - Chaque problème de programmation = déjà rencontré par d autres informaticiens - Une solution existe généralement parmi les Design Patterns

Plus en détail

GUIDE DE DÉMARRAGE RAPIDE

GUIDE DE DÉMARRAGE RAPIDE INDUSTRIAL AUTOMATION Interactive Graphical SCADA System INSIGHT AND OVERVIEW GUIDE DE DÉMARRAGE RAPIDE Page 1 de 27 Guide de démarrage rapide pour IGSS FREE50 Introduction Ce guide a pour but de vous

Plus en détail

Instructions d installation de IBM SPSS Modeler Server 14.2 pour Windows

Instructions d installation de IBM SPSS Modeler Server 14.2 pour Windows Instructions d installation de IBM SPSS Modeler Server 14.2 pour Windows IBM SPSS Modeler Server peut être installé et configuré de manière à s exécuter en mode d analyse réparti, avec une ou plusieurs

Plus en détail

Pratique et administration des systèmes

Pratique et administration des systèmes Université Louis Pasteur Licence Informatique (L2) UFR de Mathématiques et Informatique Année 2007/2008 1 But du TP Pratique et administration des systèmes TP10 : Technologie LAMP Le but de ce TP est de

Plus en détail

Transaction. 1:débiter(1000) 2:créditer(1000)

Transaction. 1:débiter(1000) 2:créditer(1000) Transaction Il n'est pas rare qu'une opération se divise en plusieurs autres opérations élémentaires sur la base de données. Dans ce cas, l''état de la base de données avant l'opération est maintenue cohérent,

Plus en détail

Spécifications Prérequis Minimum Prérequis Recommandé

Spécifications Prérequis Minimum Prérequis Recommandé Introduction Comme toutes les applications réseau, Xactimate doit être installé sur un poste de travail connecté à un réseau proprement configuré et connecté à un lecteur réseau (ce document utilise la

Plus en détail

2011 Hakim Benameurlaine 1

2011 Hakim Benameurlaine 1 Table des matières 1 SSIS... 2 1.1 Management Studio... 2 1.2 dtswizard... 13 1.3 BIDS... 14 1.4 Exemple SSIS... 16 1.4.1 Introduction... 16 1.4.2 Création du package... 18 1.4.3 Paramétrage de la tâche

Plus en détail

Manuel d'installation de GESLAB Client Lourd

Manuel d'installation de GESLAB Client Lourd Manuel d'installation GESLAB Client Lourd Référence Date de la dernière mise à jour Rédigé par Objet GESLAB_MINS_TECH_Manuel d'installation GESLAB Client 15/04/2013 Steria Manuel d'installation de GESLAB

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

Setting Up PC MACLAN File Server

Setting Up PC MACLAN File Server Setting Up PC MACLAN File Server Setting Up PC MACLAN File Server Ce chapitre explique comment paramètrer le Serveur de fichiers PC MACLAN, une fois la procédure d installation terminée. Les sujets sont

Plus en détail

Création d un service web avec NetBeans 5.5 et SJAS 9

Création d un service web avec NetBeans 5.5 et SJAS 9 Sommaire Création d un service web avec NetBeans 5.5 et SJAS 9 1. Présentation... 2 2. Création d un service web avec NetBeans... 2 2.1. Création d une application Web... 2 2.2. Création du service web...

Plus en détail

Accès au serveur SQL. Où ranger les accès au serveur SQL?

Accès au serveur SQL. Où ranger les accès au serveur SQL? 150 requête SQL, cela aura un impact sur un nombre limité de lignes et non plus sur l ensemble des données. MySQL propose une clause originale en SQL : LIMIT. Cette clause est disponible avec les différentes

Plus en détail

1. Base de données SQLite

1. Base de données SQLite Dans ce TP, nous allons voir comment créer et utiliser une base de données SQL locale pour stocker les informations. La semaine prochaine, ça sera avec un WebService. On repart de l application AvosAvis

Plus en détail

Thème : Gestion commerciale

Thème : Gestion commerciale Département Génie Informatique BD40 Ingénierie des systèmes d information TP 4 : Ms/Access : Listes déroulantes, Formulaires avancés Thème : Gestion commerciale Christian FISCHER Copyright Novembre 2005

Plus en détail

Installation des outils du CD-Rom

Installation des outils du CD-Rom Installation des outils du CD-Rom Installer le JDK Pour installer Java2 SDK, exécutez le programme d'installation en double-cliquant sur l icône j2sdk-1_4_0-win.exe située dans le répertoire Java2 du CD-Rom.

Plus en détail

Pegase3 Installation de Pégase 3 en mode TSE. Dernière révision le 31.03.2004. http://www.micromegas.fr pegase3@micromegas.fr

Pegase3 Installation de Pégase 3 en mode TSE. Dernière révision le 31.03.2004. http://www.micromegas.fr pegase3@micromegas.fr Pegase3 Installation de Pégase 3 en mode TSE Dernière révision le 31.03.2004 http://www.micromegas.fr pegase3@micromegas.fr L installation du logiciel Pégase 3 en mode TSE, sur un serveur, nécessite quelques

Plus en détail

TP1 : Initiation à Java et Eclipse

TP1 : Initiation à Java et Eclipse TP1 : Initiation à Java et Eclipse 1 I. Objectif du TP TP1 : Initiation à Java et Eclipse Programmation Mobile Initiation à l environnement Eclipse et aux notions de base du langage Java. II. Environnement

Plus en détail

objectif : plan : Java, CORBA et RMI A. Le Grand,1997 1 JAVA, CORBA et RMI

objectif : plan : Java, CORBA et RMI A. Le Grand,1997 1 JAVA, CORBA et RMI JAVA, CORBA et RMI objectif : développer des applications client/serveur incluant des objets répartis Java / CORBA : client/serveur hétérogènes Java / RMI : client/serveur homogènes plan : l architecture

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

IP Remote Controller

IP Remote Controller 4-450-999-22 (1) IP Remote Controller Guide de configuration du logiciel RM-IP10 Setup Tool Version du logiciel 1.1.0 2012 Sony Corporation Table des matières Introduction... 3 Préparation de votre ordinateur...

Plus en détail

Manuel d installation. Version 1.1 11/07/2013

Manuel d installation. Version 1.1 11/07/2013 Manuel d installation Version 1.1 11/07/2013 Table des matières I. Description de la solution... 3 II. Installation... 3 a. Prérequis... 3 b. Installation de la base de données... 3 c. Mettre à jour les

Plus en détail

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

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

Plus en détail

Installation et utilisation de SSH. .et

Installation et utilisation de SSH. .et Installation et utilisation de SSH.et.soumission de travail SSH est un protocole de communication qui permet de communiquer à distance entre deux ordinateurs. Pour cela, il faut qu un des deux ordinateurs

Plus en détail

Dossier Technique. Détail des modifications apportées à GRR. Détail des modifications apportées à GRR Le 17/07/2008. Page 1/10

Dossier Technique. Détail des modifications apportées à GRR. Détail des modifications apportées à GRR Le 17/07/2008. Page 1/10 Dossier Technique Page 1/10 Sommaire : 1. REPONSE TECHNIQUE A LA DEMANDE 3 1.1. Prise en compte de la dernière version de phpcas 3 1.2. Gestion de la connexion à GRR 3 1.2.1. Récupération des attributs

Plus en détail

bbc Launch Pad Juillet 2011 Version 10.0

bbc Launch Pad Juillet 2011 Version 10.0 bbc Configuration d Adobe Digital Enterprise Platform Document Services - Launch Pad 10.0 Guide de l administrateur et du développeur Launch Pad Juillet 2011 Version 10.0 Mentions juridiques Pour plus

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

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