SlideShare uma empresa Scribd logo
1 de 15
Baixar para ler offline
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
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 :
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 ().
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…
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
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.
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.
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.
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 :
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.
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.
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.
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.
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.
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 :

Mais conteúdo relacionado

Mais procurados

Mohamed youssfi support architectures logicielles distribuées basées sue les ...
Mohamed youssfi support architectures logicielles distribuées basées sue les ...Mohamed youssfi support architectures logicielles distribuées basées sue les ...
Mohamed youssfi support architectures logicielles distribuées basées sue les ...ENSET, Université Hassan II Casablanca
 
Notes de cours et tp - Administation Systèmes
Notes de cours et tp  - Administation Systèmes Notes de cours et tp  - Administation Systèmes
Notes de cours et tp - Administation Systèmes Ikram Benabdelouahab
 
Cours développement côté serveur
Cours développement côté serveurCours développement côté serveur
Cours développement côté serveurHouda TOUKABRI
 
Concevoir, développer et sécuriser des micro-services avec Spring Boot
Concevoir, développer et sécuriser des micro-services avec Spring BootConcevoir, développer et sécuriser des micro-services avec Spring Boot
Concevoir, développer et sécuriser des micro-services avec Spring BootDNG Consulting
 
API : l'architecture REST
API : l'architecture RESTAPI : l'architecture REST
API : l'architecture RESTFadel Chafai
 
Applications Android - cours 3 : Android Studio (Outil de développement)
Applications Android - cours 3 : Android Studio (Outil de développement)Applications Android - cours 3 : Android Studio (Outil de développement)
Applications Android - cours 3 : Android Studio (Outil de développement)Ahmed-Chawki Chaouche
 
Android-Tp5 : web services
Android-Tp5 : web servicesAndroid-Tp5 : web services
Android-Tp5 : web servicesLilia Sfaxi
 
Android - Tp3 - intents
Android - Tp3 -  intentsAndroid - Tp3 -  intents
Android - Tp3 - intentsLilia Sfaxi
 
Intégration des données avec Talend ETL
Intégration des données avec Talend ETLIntégration des données avec Talend ETL
Intégration des données avec Talend ETLLilia Sfaxi
 
Rapport application web (Spring BOOT,angular4) et mobile(ionc3) gestion des a...
Rapport application web (Spring BOOT,angular4) et mobile(ionc3) gestion des a...Rapport application web (Spring BOOT,angular4) et mobile(ionc3) gestion des a...
Rapport application web (Spring BOOT,angular4) et mobile(ionc3) gestion des a...MOHAMMED MOURADI
 

Mais procurados (20)

Mohamed youssfi support architectures logicielles distribuées basées sue les ...
Mohamed youssfi support architectures logicielles distribuées basées sue les ...Mohamed youssfi support architectures logicielles distribuées basées sue les ...
Mohamed youssfi support architectures logicielles distribuées basées sue les ...
 
Notes de cours et tp - Administation Systèmes
Notes de cours et tp  - Administation Systèmes Notes de cours et tp  - Administation Systèmes
Notes de cours et tp - Administation Systèmes
 
Cours développement côté serveur
Cours développement côté serveurCours développement côté serveur
Cours développement côté serveur
 
Tp java ee.pptx
Tp java ee.pptxTp java ee.pptx
Tp java ee.pptx
 
Concevoir, développer et sécuriser des micro-services avec Spring Boot
Concevoir, développer et sécuriser des micro-services avec Spring BootConcevoir, développer et sécuriser des micro-services avec Spring Boot
Concevoir, développer et sécuriser des micro-services avec Spring Boot
 
Sécurité des Applications Web avec Json Web Token (JWT)
Sécurité des Applications Web avec Json Web Token (JWT)Sécurité des Applications Web avec Json Web Token (JWT)
Sécurité des Applications Web avec Json Web Token (JWT)
 
API : l'architecture REST
API : l'architecture RESTAPI : l'architecture REST
API : l'architecture REST
 
Support de cours angular
Support de cours angularSupport de cours angular
Support de cours angular
 
Langage HTML
Langage HTMLLangage HTML
Langage HTML
 
Support de cours Spring M.youssfi
Support de cours Spring  M.youssfiSupport de cours Spring  M.youssfi
Support de cours Spring M.youssfi
 
Support Java Avancé Troisième Partie
Support Java Avancé Troisième PartieSupport Java Avancé Troisième Partie
Support Java Avancé Troisième Partie
 
Traitement distribue en BIg Data - KAFKA Broker and Kafka Streams
Traitement distribue en BIg Data - KAFKA Broker and Kafka StreamsTraitement distribue en BIg Data - KAFKA Broker and Kafka Streams
Traitement distribue en BIg Data - KAFKA Broker and Kafka Streams
 
Applications Android - cours 3 : Android Studio (Outil de développement)
Applications Android - cours 3 : Android Studio (Outil de développement)Applications Android - cours 3 : Android Studio (Outil de développement)
Applications Android - cours 3 : Android Studio (Outil de développement)
 
Android-Tp5 : web services
Android-Tp5 : web servicesAndroid-Tp5 : web services
Android-Tp5 : web services
 
Android - Tp3 - intents
Android - Tp3 -  intentsAndroid - Tp3 -  intents
Android - Tp3 - intents
 
Support programmation orientée objet c# .net version f8
Support programmation orientée objet c#  .net version f8Support programmation orientée objet c#  .net version f8
Support programmation orientée objet c# .net version f8
 
Modele mvc
Modele mvcModele mvc
Modele mvc
 
Intégration des données avec Talend ETL
Intégration des données avec Talend ETLIntégration des données avec Talend ETL
Intégration des données avec Talend ETL
 
Rapport application web (Spring BOOT,angular4) et mobile(ionc3) gestion des a...
Rapport application web (Spring BOOT,angular4) et mobile(ionc3) gestion des a...Rapport application web (Spring BOOT,angular4) et mobile(ionc3) gestion des a...
Rapport application web (Spring BOOT,angular4) et mobile(ionc3) gestion des a...
 
Support POO Java première partie
Support POO Java première partieSupport POO Java première partie
Support POO Java première partie
 

Destaque

Prototype rapport
Prototype rapportPrototype rapport
Prototype rapportInes Ouaz
 
Travaux dirigés 1: algorithme & structures de données
Travaux dirigés 1: algorithme & structures de donnéesTravaux dirigés 1: algorithme & structures de données
Travaux dirigés 1: algorithme & structures de donnéesInes Ouaz
 
Examen principal - Fondement Multimedia - correction
Examen principal - Fondement Multimedia - correctionExamen principal - Fondement Multimedia - correction
Examen principal - Fondement Multimedia - correctionInes Ouaz
 
Examen Principal - Fondement Multimedia Janvier 2015
Examen Principal - Fondement Multimedia Janvier 2015Examen Principal - Fondement Multimedia Janvier 2015
Examen Principal - Fondement Multimedia Janvier 2015Ines Ouaz
 
Travaux dirigés 1: algorithme & structures de données (corrigés)
Travaux dirigés 1: algorithme & structures de données (corrigés)Travaux dirigés 1: algorithme & structures de données (corrigés)
Travaux dirigés 1: algorithme & structures de données (corrigés)Ines Ouaz
 
Cv ines ouaz
Cv ines ouazCv ines ouaz
Cv ines ouazInes Ouaz
 

Destaque (6)

Prototype rapport
Prototype rapportPrototype rapport
Prototype rapport
 
Travaux dirigés 1: algorithme & structures de données
Travaux dirigés 1: algorithme & structures de donnéesTravaux dirigés 1: algorithme & structures de données
Travaux dirigés 1: algorithme & structures de données
 
Examen principal - Fondement Multimedia - correction
Examen principal - Fondement Multimedia - correctionExamen principal - Fondement Multimedia - correction
Examen principal - Fondement Multimedia - correction
 
Examen Principal - Fondement Multimedia Janvier 2015
Examen Principal - Fondement Multimedia Janvier 2015Examen Principal - Fondement Multimedia Janvier 2015
Examen Principal - Fondement Multimedia Janvier 2015
 
Travaux dirigés 1: algorithme & structures de données (corrigés)
Travaux dirigés 1: algorithme & structures de données (corrigés)Travaux dirigés 1: algorithme & structures de données (corrigés)
Travaux dirigés 1: algorithme & structures de données (corrigés)
 
Cv ines ouaz
Cv ines ouazCv ines ouaz
Cv ines ouaz
 

Semelhante a Connexion jdbc

Framework Hibernate
Framework HibernateFramework Hibernate
Framework HibernateInes Ouaz
 
Entity_framework_db first
Entity_framework_db firstEntity_framework_db first
Entity_framework_db firstZineb ELGARRAI
 
#J2Code2018 - Mettez du feu à vos applications avec CodeIgniter
#J2Code2018 - Mettez du feu à vos applications avec CodeIgniter#J2Code2018 - Mettez du feu à vos applications avec CodeIgniter
#J2Code2018 - Mettez du feu à vos applications avec CodeIgniterAtsé François-Xavier KOBON
 
Application Spring MVC/IOC & Hibernate
Application Spring MVC/IOC & HibernateApplication Spring MVC/IOC & Hibernate
Application Spring MVC/IOC & HibernateInes Ouaz
 
Introduction à Hibernate p.1
Introduction à Hibernate p.1Introduction à Hibernate p.1
Introduction à Hibernate p.1ATHMAN HAJ-HAMOU
 
Développement d’extensions WordPress
Développement d’extensions WordPressDéveloppement d’extensions WordPress
Développement d’extensions WordPressChi Nacim
 
atam guide de developpement v1.3
atam guide de developpement v1.3atam guide de developpement v1.3
atam guide de developpement v1.3Abdessamad Hamouch
 
Module development Patterns de Création.pptx
Module development Patterns de Création.pptxModule development Patterns de Création.pptx
Module development Patterns de Création.pptxarapilatico
 
Formation PHP avancé - Cake PHP
Formation PHP avancé - Cake PHPFormation PHP avancé - Cake PHP
Formation PHP avancé - Cake PHPkemenaran
 
MVVM de A à Z
MVVM de A à ZMVVM de A à Z
MVVM de A à ZMicrosoft
 
React redux-tutoriel-1
React redux-tutoriel-1React redux-tutoriel-1
React redux-tutoriel-1Sem Koto
 
React redux-tutoriel-1
React redux-tutoriel-1React redux-tutoriel-1
React redux-tutoriel-1Sem Koto
 
Présentaion sur le modéle JDBC JEE .pptx
Présentaion sur le modéle JDBC JEE .pptxPrésentaion sur le modéle JDBC JEE .pptx
Présentaion sur le modéle JDBC JEE .pptxsalmachtioui1
 
Tp Sql Server Integration Services 2008
Tp  Sql Server Integration Services  2008Tp  Sql Server Integration Services  2008
Tp Sql Server Integration Services 2008Abdelouahed Abdou
 
chap3 conception et implementation
chap3 conception et implementation chap3 conception et implementation
chap3 conception et implementation michel martiz
 

Semelhante a Connexion jdbc (20)

3-android.pdf
3-android.pdf3-android.pdf
3-android.pdf
 
Framework Hibernate
Framework HibernateFramework Hibernate
Framework Hibernate
 
Entity_framework_db first
Entity_framework_db firstEntity_framework_db first
Entity_framework_db first
 
575
575575
575
 
#J2Code2018 - Mettez du feu à vos applications avec CodeIgniter
#J2Code2018 - Mettez du feu à vos applications avec CodeIgniter#J2Code2018 - Mettez du feu à vos applications avec CodeIgniter
#J2Code2018 - Mettez du feu à vos applications avec CodeIgniter
 
spring-api-rest.pdf
spring-api-rest.pdfspring-api-rest.pdf
spring-api-rest.pdf
 
Formation cakephp
Formation cakephpFormation cakephp
Formation cakephp
 
Application Spring MVC/IOC & Hibernate
Application Spring MVC/IOC & HibernateApplication Spring MVC/IOC & Hibernate
Application Spring MVC/IOC & Hibernate
 
Introduction à Hibernate p.1
Introduction à Hibernate p.1Introduction à Hibernate p.1
Introduction à Hibernate p.1
 
Développement d’extensions WordPress
Développement d’extensions WordPressDéveloppement d’extensions WordPress
Développement d’extensions WordPress
 
Springioc
SpringiocSpringioc
Springioc
 
atam guide de developpement v1.3
atam guide de developpement v1.3atam guide de developpement v1.3
atam guide de developpement v1.3
 
Module development Patterns de Création.pptx
Module development Patterns de Création.pptxModule development Patterns de Création.pptx
Module development Patterns de Création.pptx
 
Formation PHP avancé - Cake PHP
Formation PHP avancé - Cake PHPFormation PHP avancé - Cake PHP
Formation PHP avancé - Cake PHP
 
MVVM de A à Z
MVVM de A à ZMVVM de A à Z
MVVM de A à Z
 
React redux-tutoriel-1
React redux-tutoriel-1React redux-tutoriel-1
React redux-tutoriel-1
 
React redux-tutoriel-1
React redux-tutoriel-1React redux-tutoriel-1
React redux-tutoriel-1
 
Présentaion sur le modéle JDBC JEE .pptx
Présentaion sur le modéle JDBC JEE .pptxPrésentaion sur le modéle JDBC JEE .pptx
Présentaion sur le modéle JDBC JEE .pptx
 
Tp Sql Server Integration Services 2008
Tp  Sql Server Integration Services  2008Tp  Sql Server Integration Services  2008
Tp Sql Server Integration Services 2008
 
chap3 conception et implementation
chap3 conception et implementation chap3 conception et implementation
chap3 conception et implementation
 

Mais de Ines Ouaz

Fondamentaux java
Fondamentaux javaFondamentaux java
Fondamentaux javaInes Ouaz
 
Java & Etat de l'art
Java & Etat de l'artJava & Etat de l'art
Java & Etat de l'artInes Ouaz
 
Cv Ouaz Ines
Cv Ouaz InesCv Ouaz Ines
Cv Ouaz InesInes Ouaz
 
Environnement java
Environnement javaEnvironnement java
Environnement javaInes Ouaz
 
Examen principal + Correction ASD
Examen principal + Correction ASDExamen principal + Correction ASD
Examen principal + Correction ASDInes Ouaz
 
Examen principal - Algorithme & Structures de données
Examen principal - Algorithme & Structures de donnéesExamen principal - Algorithme & Structures de données
Examen principal - Algorithme & Structures de donnéesInes Ouaz
 
Examen principal- php - correction
Examen principal- php - correctionExamen principal- php - correction
Examen principal- php - correctionInes Ouaz
 
Examen principal - PHP
Examen principal - PHPExamen principal - PHP
Examen principal - PHPInes Ouaz
 
Algorithme & structures de données Chap III
Algorithme & structures de données Chap IIIAlgorithme & structures de données Chap III
Algorithme & structures de données Chap IIIInes Ouaz
 
Algorithme & structures de données Chap II
Algorithme & structures de données Chap IIAlgorithme & structures de données Chap II
Algorithme & structures de données Chap IIInes Ouaz
 
Algorithme & structures de données Chap I
Algorithme & structures de données Chap IAlgorithme & structures de données Chap I
Algorithme & structures de données Chap IInes Ouaz
 

Mais de Ines Ouaz (11)

Fondamentaux java
Fondamentaux javaFondamentaux java
Fondamentaux java
 
Java & Etat de l'art
Java & Etat de l'artJava & Etat de l'art
Java & Etat de l'art
 
Cv Ouaz Ines
Cv Ouaz InesCv Ouaz Ines
Cv Ouaz Ines
 
Environnement java
Environnement javaEnvironnement java
Environnement java
 
Examen principal + Correction ASD
Examen principal + Correction ASDExamen principal + Correction ASD
Examen principal + Correction ASD
 
Examen principal - Algorithme & Structures de données
Examen principal - Algorithme & Structures de donnéesExamen principal - Algorithme & Structures de données
Examen principal - Algorithme & Structures de données
 
Examen principal- php - correction
Examen principal- php - correctionExamen principal- php - correction
Examen principal- php - correction
 
Examen principal - PHP
Examen principal - PHPExamen principal - PHP
Examen principal - PHP
 
Algorithme & structures de données Chap III
Algorithme & structures de données Chap IIIAlgorithme & structures de données Chap III
Algorithme & structures de données Chap III
 
Algorithme & structures de données Chap II
Algorithme & structures de données Chap IIAlgorithme & structures de données Chap II
Algorithme & structures de données Chap II
 
Algorithme & structures de données Chap I
Algorithme & structures de données Chap IAlgorithme & structures de données Chap I
Algorithme & structures de données Chap I
 

Último

Fondation Louis Vuitton. pptx
Fondation      Louis      Vuitton.   pptxFondation      Louis      Vuitton.   pptx
Fondation Louis Vuitton. pptxTxaruka
 
SciencesPo_Aix_InnovationPédagogique_Atelier_EtudiantActeur.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_EtudiantActeur.pdfSciencesPo_Aix_InnovationPédagogique_Atelier_EtudiantActeur.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_EtudiantActeur.pdfSKennel
 
SciencesPo_Aix_InnovationPédagogique_Conférence_SK.pdf
SciencesPo_Aix_InnovationPédagogique_Conférence_SK.pdfSciencesPo_Aix_InnovationPédagogique_Conférence_SK.pdf
SciencesPo_Aix_InnovationPédagogique_Conférence_SK.pdfSKennel
 
le present des verbes reguliers -er.pptx
le present des verbes reguliers -er.pptxle present des verbes reguliers -er.pptx
le present des verbes reguliers -er.pptxmmatar2
 
LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...
LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...
LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...Faga1939
 
Annie Ernaux Extérieurs. pptx. Exposition basée sur un livre .
Annie   Ernaux  Extérieurs. pptx. Exposition basée sur un livre .Annie   Ernaux  Extérieurs. pptx. Exposition basée sur un livre .
Annie Ernaux Extérieurs. pptx. Exposition basée sur un livre .Txaruka
 
Principe de fonctionnement d'un moteur 4 temps
Principe de fonctionnement d'un moteur 4 tempsPrincipe de fonctionnement d'un moteur 4 temps
Principe de fonctionnement d'un moteur 4 tempsRajiAbdelghani
 
Cours SE Gestion des périphériques - IG IPSET
Cours SE Gestion des périphériques - IG IPSETCours SE Gestion des périphériques - IG IPSET
Cours SE Gestion des périphériques - IG IPSETMedBechir
 
presentation sur la maladie de la dengue .pptx
presentation sur la maladie de la dengue .pptxpresentation sur la maladie de la dengue .pptx
presentation sur la maladie de la dengue .pptxNYTombaye
 
Formation M2i - Comprendre les neurosciences pour développer son leadership
Formation M2i - Comprendre les neurosciences pour développer son leadershipFormation M2i - Comprendre les neurosciences pour développer son leadership
Formation M2i - Comprendre les neurosciences pour développer son leadershipM2i Formation
 
Présentation_ Didactique 1_SVT (S4) complet.pptx
Présentation_ Didactique 1_SVT (S4) complet.pptxPrésentation_ Didactique 1_SVT (S4) complet.pptx
Présentation_ Didactique 1_SVT (S4) complet.pptxrababouerdighi
 
SciencesPo_Aix_InnovationPédagogique_Bilan.pdf
SciencesPo_Aix_InnovationPédagogique_Bilan.pdfSciencesPo_Aix_InnovationPédagogique_Bilan.pdf
SciencesPo_Aix_InnovationPédagogique_Bilan.pdfSKennel
 
SciencesPo_Aix_InnovationPédagogique_Atelier_IA.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_IA.pdfSciencesPo_Aix_InnovationPédagogique_Atelier_IA.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_IA.pdfSKennel
 
Zotero avancé - support de formation doctorants SHS 2024
Zotero avancé - support de formation doctorants SHS 2024Zotero avancé - support de formation doctorants SHS 2024
Zotero avancé - support de formation doctorants SHS 2024Alain Marois
 
Presentation de la plateforme Moodle - avril 2024
Presentation de la plateforme Moodle - avril 2024Presentation de la plateforme Moodle - avril 2024
Presentation de la plateforme Moodle - avril 2024Gilles Le Page
 
Evaluation du systeme d'Education. Marocpptx
Evaluation du systeme d'Education. MarocpptxEvaluation du systeme d'Education. Marocpptx
Evaluation du systeme d'Education. MarocpptxAsmaa105193
 
Saint Georges, martyr, et la lègend du dragon.pptx
Saint Georges, martyr, et la lègend du dragon.pptxSaint Georges, martyr, et la lègend du dragon.pptx
Saint Georges, martyr, et la lègend du dragon.pptxMartin M Flynn
 
Cours SE Le système Linux : La ligne de commande bash - IG IPSET
Cours SE Le système Linux : La ligne de commande bash - IG IPSETCours SE Le système Linux : La ligne de commande bash - IG IPSET
Cours SE Le système Linux : La ligne de commande bash - IG IPSETMedBechir
 
SciencesPo_Aix_InnovationPédagogique_Atelier_FormationRecherche.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_FormationRecherche.pdfSciencesPo_Aix_InnovationPédagogique_Atelier_FormationRecherche.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_FormationRecherche.pdfSKennel
 

Último (20)

Fondation Louis Vuitton. pptx
Fondation      Louis      Vuitton.   pptxFondation      Louis      Vuitton.   pptx
Fondation Louis Vuitton. pptx
 
SciencesPo_Aix_InnovationPédagogique_Atelier_EtudiantActeur.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_EtudiantActeur.pdfSciencesPo_Aix_InnovationPédagogique_Atelier_EtudiantActeur.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_EtudiantActeur.pdf
 
SciencesPo_Aix_InnovationPédagogique_Conférence_SK.pdf
SciencesPo_Aix_InnovationPédagogique_Conférence_SK.pdfSciencesPo_Aix_InnovationPédagogique_Conférence_SK.pdf
SciencesPo_Aix_InnovationPédagogique_Conférence_SK.pdf
 
le present des verbes reguliers -er.pptx
le present des verbes reguliers -er.pptxle present des verbes reguliers -er.pptx
le present des verbes reguliers -er.pptx
 
LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...
LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...
LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...
 
Annie Ernaux Extérieurs. pptx. Exposition basée sur un livre .
Annie   Ernaux  Extérieurs. pptx. Exposition basée sur un livre .Annie   Ernaux  Extérieurs. pptx. Exposition basée sur un livre .
Annie Ernaux Extérieurs. pptx. Exposition basée sur un livre .
 
Principe de fonctionnement d'un moteur 4 temps
Principe de fonctionnement d'un moteur 4 tempsPrincipe de fonctionnement d'un moteur 4 temps
Principe de fonctionnement d'un moteur 4 temps
 
Cours SE Gestion des périphériques - IG IPSET
Cours SE Gestion des périphériques - IG IPSETCours SE Gestion des périphériques - IG IPSET
Cours SE Gestion des périphériques - IG IPSET
 
presentation sur la maladie de la dengue .pptx
presentation sur la maladie de la dengue .pptxpresentation sur la maladie de la dengue .pptx
presentation sur la maladie de la dengue .pptx
 
Formation M2i - Comprendre les neurosciences pour développer son leadership
Formation M2i - Comprendre les neurosciences pour développer son leadershipFormation M2i - Comprendre les neurosciences pour développer son leadership
Formation M2i - Comprendre les neurosciences pour développer son leadership
 
Présentation_ Didactique 1_SVT (S4) complet.pptx
Présentation_ Didactique 1_SVT (S4) complet.pptxPrésentation_ Didactique 1_SVT (S4) complet.pptx
Présentation_ Didactique 1_SVT (S4) complet.pptx
 
SciencesPo_Aix_InnovationPédagogique_Bilan.pdf
SciencesPo_Aix_InnovationPédagogique_Bilan.pdfSciencesPo_Aix_InnovationPédagogique_Bilan.pdf
SciencesPo_Aix_InnovationPédagogique_Bilan.pdf
 
SciencesPo_Aix_InnovationPédagogique_Atelier_IA.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_IA.pdfSciencesPo_Aix_InnovationPédagogique_Atelier_IA.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_IA.pdf
 
Zotero avancé - support de formation doctorants SHS 2024
Zotero avancé - support de formation doctorants SHS 2024Zotero avancé - support de formation doctorants SHS 2024
Zotero avancé - support de formation doctorants SHS 2024
 
Presentation de la plateforme Moodle - avril 2024
Presentation de la plateforme Moodle - avril 2024Presentation de la plateforme Moodle - avril 2024
Presentation de la plateforme Moodle - avril 2024
 
DO PALÁCIO À ASSEMBLEIA .
DO PALÁCIO À ASSEMBLEIA                 .DO PALÁCIO À ASSEMBLEIA                 .
DO PALÁCIO À ASSEMBLEIA .
 
Evaluation du systeme d'Education. Marocpptx
Evaluation du systeme d'Education. MarocpptxEvaluation du systeme d'Education. Marocpptx
Evaluation du systeme d'Education. Marocpptx
 
Saint Georges, martyr, et la lègend du dragon.pptx
Saint Georges, martyr, et la lègend du dragon.pptxSaint Georges, martyr, et la lègend du dragon.pptx
Saint Georges, martyr, et la lègend du dragon.pptx
 
Cours SE Le système Linux : La ligne de commande bash - IG IPSET
Cours SE Le système Linux : La ligne de commande bash - IG IPSETCours SE Le système Linux : La ligne de commande bash - IG IPSET
Cours SE Le système Linux : La ligne de commande bash - IG IPSET
 
SciencesPo_Aix_InnovationPédagogique_Atelier_FormationRecherche.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_FormationRecherche.pdfSciencesPo_Aix_InnovationPédagogique_Atelier_FormationRecherche.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_FormationRecherche.pdf
 

Connexion jdbc

  • 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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 :