DEF (DEVELOPPEMENT/ ENCADREMENT/FORMATION)
25 mars
2015
1
Accès à la base de données via JDBC
1. Connexion de la base de d...
DEF (DEVELOPPEMENT/ ENCADREMENT/FORMATION)
25 mars
2015
2
La structure de la table CATEGORIE
Code SQL de la table CATEGORI...
DEF (DEVELOPPEMENT/ ENCADREMENT/FORMATION)
25 mars
2015
3
Exemple 1 :
On va implémenter une classe de test pour vous montr...
DEF (DEVELOPPEMENT/ ENCADREMENT/FORMATION)
25 mars
2015
4
Résultat de l’exécution de notre classe de test. On va implément...
DEF (DEVELOPPEMENT/ ENCADREMENT/FORMATION)
25 mars
2015
5
 Package 3 : def.jdbc.presentation  c’est un package contenant...
DEF (DEVELOPPEMENT/ ENCADREMENT/FORMATION)
25 mars
2015
6
 Les getters et setters de chaque attribut.
Il faut définir tou...
DEF (DEVELOPPEMENT/ ENCADREMENT/FORMATION)
25 mars
2015
7
II. Préparation des DAO (Objet d’Accès aux Données)
1. SINGLETON...
DEF (DEVELOPPEMENT/ ENCADREMENT/FORMATION)
25 mars
2015
8
Bon, nous avons maintenant tous les éléments nécessaires afin de...
DEF (DEVELOPPEMENT/ ENCADREMENT/FORMATION)
25 mars
2015
9
3. IMPLEMENTATION DE PRODUITDAOIMPL
On va définir la classe Prod...
DEF (DEVELOPPEMENT/ ENCADREMENT/FORMATION)
25 mars
2015
10
Implémentez la méthode qui insère un nouveau produit en saisiss...
DEF (DEVELOPPEMENT/ ENCADREMENT/FORMATION)
25 mars
2015
11
Implémentez la méthode de recherche qui renvoie une liste de pr...
DEF (DEVELOPPEMENT/ ENCADREMENT/FORMATION)
25 mars
2015
12
Implémenter la méthode de récupération de la liste des produits...
DEF (DEVELOPPEMENT/ ENCADREMENT/FORMATION)
25 mars
2015
13
A compléter à Implémenter les autres méthodes qui restent de la...
DEF (DEVELOPPEMENT/ ENCADREMENT/FORMATION)
25 mars
2015
14
IV. Préparation du test
Dans cette partie, il faut implémenter ...
DEF (DEVELOPPEMENT/ ENCADREMENT/FORMATION)
25 mars
2015
15
Le résultat de l’exécution de la classe de test est présenté co...
Prochain SlideShare
Chargement dans…5
×

Connexion jdbc

1 153 vues

Publié le

Connexion JDBC
Singleton
Modele en couche
Couche DAO

Publié dans : Formation
0 commentaire
2 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

Aucun téléchargement
Vues
Nombre de vues
1 153
Sur SlideShare
0
Issues des intégrations
0
Intégrations
40
Actions
Partages
0
Téléchargements
86
Commentaires
0
J’aime
2
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive

Connexion jdbc

  1. 1. DEF (DEVELOPPEMENT/ ENCADREMENT/FORMATION) 25 mars 2015 1 Accès à la base de données via JDBC 1. Connexion de la base de données Création de la base de données E-COMMERCE : Vous donnez un nom à votre base de données selon votre choix par exemple : e-commerce On va créer deux tables dans la base : la table produit et la table categorie selon le diagramme de classes produit suivant : La structure de la table PRODUIT est la suivante : Code SQL de la table PRODUIT
  2. 2. DEF (DEVELOPPEMENT/ ENCADREMENT/FORMATION) 25 mars 2015 2 La structure de la table CATEGORIE Code SQL de la table CATEGORIE Insérer un enregistrement dans la table CATEGORIE et deux enregistrements dans la table PRODUIT. 2. Création d’un projet JAVA APPLICATION_JDBC Ajouter la librairie adéquate à la CLASSPATH du projet mysql-connector-java-version.jar Etapes d’ajout de la lib : 1- Cliquez properties du projet 2- Cliquez sur Java Build Path 3- Selectionnez ADD Jars > choisir la librairie adéquate> Finir par OK 4- La librairie sera ajoutée à la CLASSPATH du projet et vous pouvez vérifier ça comme suit :
  3. 3. DEF (DEVELOPPEMENT/ ENCADREMENT/FORMATION) 25 mars 2015 3 Exemple 1 : On va implémenter une classe de test pour vous montrer en premier lieu comment se connecter à une base de données via JDBC (Java DataBase Connectivity). On doit connaitre 4 informations nécessaires pour pouvoir accéder à la base : DRIVER, URL, LOGIN et PASSWORD. Un simple exemple de connexion à la base de données et d’exécution d’une requête de recherche (SELECT). Vous pouvez juste tester l’exécution de ce petit code dans une méthode main ().
  4. 4. DEF (DEVELOPPEMENT/ ENCADREMENT/FORMATION) 25 mars 2015 4 Résultat de l’exécution de notre classe de test. On va implémenter une deuxième méthode pour un projet structuré sous forme de package tout en suivant l’architecture du modèle en couche. Exemple 2 : Mapping objet relationnel Nous souhaitons créer une application java qui permet de :  Enregistrer une categorie  Enregistrer un produit  Saisir au clavier un mot clé et d’afficher tous les produits dont le nom contient ce mot clé. Dans cette application, nous devons séparer la couche métier de la couche présentation. Création de l’entité Produit comme étant une classe Java Produit.java contenant les attributs et les méthodes getters et setters ainsi que les constructeurs et la classe Categorie.java. Architecture du projet et comme indiqué sur la photo, il y aura 4 package à créer :  Package 1 : def.jdbc.dto  c’est un package contenant les entités relatifs à tout projet  Package 2 : def.jdbc.dao  c’est un package contenant les classes implémentant nos requêtes et tout accès à la base de données  Package 3 : def.jdbc.metier  c’est un package contenant n’importe quel autre traitement comme calcul, envoie de mail…
  5. 5. DEF (DEVELOPPEMENT/ ENCADREMENT/FORMATION) 25 mars 2015 5  Package 3 : def.jdbc.presentation  c’est un package contenant toutes les interfaces graphique de notre application mais vu qu’on ne va pas faire cette partie maintenant, on va juste la consacrer pour mettre notre classe de test main. I. Préparation des entités DTO (Objet de transfert de données : entités) On va commencer par créer nos classes Produit et Categorie dans le package dto : 1. CREATION DE L’ENTITE PRODUIT On doit définir dans cette classe ce qui suit :  Les attributs qui doivent être privées. Il y a une relation entre la table PRODUIT et la table CATEGORIE de la manière suivante : un produit appartient à une catégorie et une catégorie contient une liste de produit. On doit définir ça coté objet.  Il faut définir un objet catégorie de type Classe Categorie dans la classe Produit  Il faut définir une Liste d’objet de type Classe Produit dans la classe Categorie  Les constructeurs selon notre besoin
  6. 6. DEF (DEVELOPPEMENT/ ENCADREMENT/FORMATION) 25 mars 2015 6  Les getters et setters de chaque attribut. Il faut définir tout les getters et setter sans exception dans la classe Produit. Il faut faire de même pour la classe Categorie. 2. CREATION DE L’ENTITE CATEGORIE Définir les attributs de la classe Categorie, on doit définir une liste de produits de type Produit. Faisant la même chose en définissant les constructeurs et les getters et les setters de la classe.
  7. 7. DEF (DEVELOPPEMENT/ ENCADREMENT/FORMATION) 25 mars 2015 7 II. Préparation des DAO (Objet d’Accès aux Données) 1. SINGLETON DE CONNEXION A UNE BASE DE DONNEES Nous avons maintenant nos objets Java et notre base de données, avant de voir comment fonctionne ce pattern de conception, il ne nous reste juste à voir comment nous allons implémenter la connexion à la base de données. Afin de pouvoir gagner en souplesse et en allocation mémoire, nous allons utiliser le pattern singleton afin d'instancier et d'utiliser la connexion à la base de données utilisée. Il va de soit que vous savez vous connecter à une base de données via JDBC (Java DataBase Connectivity). Il s'agit d'un objet dont le constructeur est déclaré static, ceci afin d'assurer que seule une instance de l'objet en question puisse être créée. Voici le code source de mon singleton, celui-ci sert à créer une connexion vers la base MySql, modifiez le code source selon vos besoins. Il y a 4 attributs qu’il faut instancier dès le début pour pouvoir se connecter à une base de données : DRIVER, URL, LOGIN et PASSWORD.
  8. 8. DEF (DEVELOPPEMENT/ ENCADREMENT/FORMATION) 25 mars 2015 8 Bon, nous avons maintenant tous les éléments nécessaires afin de travailler avec notre base de données via le pattern DAO, mais il nous reste à savoir ce que fait exactement ce pattern... Le pattern DAO (Data Access Object) permet de faire le lien entre la couche métier et la couche persistante, ceci afin de centraliser les mécanismes de MAPPING entre notre système de stockage et nos objets Java. Il permet aussi de prévenir un changement éventuel de système de stockage de données (de MySql vers Oracle par exemple). La couche persistante correspond, en fait, à notre système de stockage et la couche métier correspond à nos objets Java, mapper sur notre base. Le pattern DAO consiste à ajouter un ensemble d'objets dont le rôle sera d'aller Lire, Ecrire, Modifier et Supprimer. Dans notre système de stockage. Cet ensemble d'objet s'appelle la couche DAO. 2. CREATION DE L’INTERFACE IPRPDUITDAO Une interface définit un comportement (d’une classe) qui doit être implémenté par une classe, sans implémenter ce comportement. C’est un ensemble de méthodes abstraites, et de constantes. Les différences entre les interfaces et les classes abstraites :  Une interface n’implémente aucune méthode.  Une classe, ou une classe abstraite peut implémenter plusieurs interfaces, mais n’a qu’une super classe, alors qu’une interface peut dériver de plusieurs autres interfaces.  Des classes non liées hiérarchiquement peuvent implémenter la même interface. Création d’une classe de type interface qui va définir les méthodes que j’aime implémenter dans mon application. Définir les opérations CRUD (INSERT, UPDATE, DELETE, Consultation). On va définir 4 opérations :  Insertion d’un nouveau produit  Modification d’un produit existant  Suppression d’un produit  Chargement d’un produit à partir de son identifiant (clé primaire)  Recherche de la liste de tous les produits sans exception  Recherche des produits par un mot clé  Récupération de la liste des produits par catégorie.
  9. 9. DEF (DEVELOPPEMENT/ ENCADREMENT/FORMATION) 25 mars 2015 9 3. IMPLEMENTATION DE PRODUITDAOIMPL On va définir la classe ProduitDAOImpl qui implémente toutes les méthodes qui existent dans IProduitDAO. Pour ce faire, il suffit juste d’écrire ce qui suit : On obtiendra une classe contenant le squelette des méthodes qu’il faut implémenter par la suite, il reste donc à implémenter chacune de ces méthodes à part :
  10. 10. DEF (DEVELOPPEMENT/ ENCADREMENT/FORMATION) 25 mars 2015 10 Implémentez la méthode qui insère un nouveau produit en saisissant les données suivantes : nom, description prix, quantité et id_categorie disponible. Implémentez la méthode qui modifie les différentes données du produit en connaissant la clé primaire. Implémentez la méthode qui supprime un produit tout en connaissant son clé primaire.
  11. 11. DEF (DEVELOPPEMENT/ ENCADREMENT/FORMATION) 25 mars 2015 11 Implémentez la méthode de recherche qui renvoie une liste de produits par mot clé. Implémenter la méthode de récupération d’un produit à partir de son Identifiant. Chargement d’un produit avec tous ces attributs même son attribut objet categeorie.
  12. 12. DEF (DEVELOPPEMENT/ ENCADREMENT/FORMATION) 25 mars 2015 12 Implémenter la méthode de récupération de la liste des produits par catégorie.
  13. 13. DEF (DEVELOPPEMENT/ ENCADREMENT/FORMATION) 25 mars 2015 13 A compléter à Implémenter les autres méthodes qui restent de la même manière des méthodes précédentes. III. Préparation des de la couche Métier Elle correspond à la partie fonctionnelle de l'application, celle qui implémente la « logique », et qui décrit les opérations que l'application opère sur les données en fonction des requêtes des utilisateurs, effectuées au travers de la couche présentation. Les différentes règles de gestion et de contrôle du système sont mises en œuvre dans cette couche. La couche métier offre des services applicatifs et métier à la couche présentation. Pour fournir ces services, elle s'appuie, le cas échéant, sur les données du système, accessibles au travers des services de la couche inférieure : couche d’accès aux données. En retour, elle renvoie à la couche présentation les résultats qu'elle a calculés. Création d’une interface métier IProduitMetier qui va définir les méthodes qu’on doit implémenter appelant les méthodes qui existe déjà dans les classes DAO. La couche métier joue le rôle intermédiaire entre la couche présentation et la couche métier. On définit la classe ProduitMetierImpl qui implémente l’interface IProduitMetier. La classe va définir les méthodes d’insertion, de mise à jour, de suppression et de recherche définit déjà dans la couche d’accès aux données DAO. Cette couche va appeler les méthodes implémentées dans cette dernière. On va définir l’objet produitDAO qui sera une instance de la classe ProduitDAOImpl.
  14. 14. DEF (DEVELOPPEMENT/ ENCADREMENT/FORMATION) 25 mars 2015 14 IV. Préparation du test Dans cette partie, il faut implémenter l’interface de l’application. Elle peut être une interface Swing ou bien une page web sous forme d’une page JSP. Dans cet exemple on va développer juste une classe main de test et l’affichage sera sur la console d’Eclipse.
  15. 15. DEF (DEVELOPPEMENT/ ENCADREMENT/FORMATION) 25 mars 2015 15 Le résultat de l’exécution de la classe de test est présenté comme suit :

×