Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
d3:tp04 [2025/09/22 15:19] – [I. Création de la classe ClientMysql] dthevenot | d3:tp04 [2025/10/12 20:24] (Version actuelle) – [D3-TP04 : Projet gestion de clients(4) - Persistance des données (1)] dthevenot | ||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
====== D3-TP04 : Projet gestion de clients(4) - Persistance des données (1) ====== | ====== D3-TP04 : Projet gestion de clients(4) - Persistance des données (1) ====== | ||
< | < | ||
- | * version "JDBC manuel" | + | * version "JDBC manuel" |
- | * fichier configuration mariadb sur le serveur à modifier (bind-address=0.0.0.0) pour accès distant | + | * fichier configuration mariadb sur le serveur(sudo nano / |
- | * vérifier | + | * relancer le serveur |
+ | * Mettre le .jar du jdbc dans les librairies du serveur web (C: | ||
+ | * tester la configuration de l' | ||
</ | </ | ||
+ | |||
+ | ===== avec MAVEN ===== | ||
+ | Ajouter une dépendance (**pom.xml**) : | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | </ | ||
+ | </ | ||
===== Contexte ===== | ===== Contexte ===== | ||
Ligne 20: | Ligne 32: | ||
- Créer un bean **Client** correspondant à la description de la table client de la base de données | - Créer un bean **Client** correspondant à la description de la table client de la base de données | ||
- Mettre en place le **connecteur JDBC** (mariadb-java-client-3.5.6.jar sur le drive et voir SIO1/ | - Mettre en place le **connecteur JDBC** (mariadb-java-client-3.5.6.jar sur le drive et voir SIO1/ | ||
+ | - Copier le connecteur dans les librairies de Payara (ex : | ||
- Depuis le Drive, récupérer la classe **Connexion** et la déposer dans l' | - Depuis le Drive, récupérer la classe **Connexion** et la déposer dans l' | ||
Ligne 40: | Ligne 53: | ||
Créer la nouvelle classe Java **ClientMysql** dans le **package bdd** | Créer la nouvelle classe Java **ClientMysql** dans le **package bdd** | ||
- | - Déclarer et initialiser l' | + | - Déclarer et initialiser l' |
- Écrire la méthode readAll. Cette méthode n'a pas besoin de paramètre, et retourne une collection de clients | - Écrire la méthode readAll. Cette méthode n'a pas besoin de paramètre, et retourne une collection de clients | ||
Ligne 46: | Ligne 59: | ||
Exemple : | Exemple : | ||
+ | <code ruby reaAll()> | ||
+ | public ArrayList< | ||
+ | ArrayList< | ||
+ | try { | ||
+ | Statement stmt=theConnection.createStatement(); | ||
+ | ResultSet resultQ=null; | ||
+ | resultQ=stmt.executeQuery(" | ||
+ | while (resultQ.next()){ | ||
+ | Client resultat=new Client(resultQ.getInt(" | ||
+ | lesClients.add(resultat); | ||
+ | } | ||
+ | resultQ.close(); | ||
+ | stmt.close(); | ||
+ | |||
+ | } | ||
+ | catch(SQLException ex){ | ||
+ | System.out.println(" | ||
+ | System.out.println(" | ||
+ | System.out.println(" | ||
+ | } | ||
+ | return lesClients; | ||
+ | } | ||
+ | } | ||
+ | </ | ||
==== II. Modification de la servlet ListeServlet.java ==== | ==== II. Modification de la servlet ListeServlet.java ==== | ||
| | ||
Ligne 56: | Ligne 92: | ||
La jsp devra afficher les clients présents dans la collection lesClients. | La jsp devra afficher les clients présents dans la collection lesClients. | ||
+ | |||
+ | ===== Optimisation du code ===== | ||
+ | ==== Fichier .env ==== | ||
+ | Un fichier .env est un fichier de configuration qui permet de stocker des **variables d’environnement** nécessaires au fonctionnement de l' | ||
+ | |||
+ | === Avec Jakarta EE et serveur Payara === | ||
+ | Le fichier .env peut être créé à la racine de ton projet (là où se trouvent le fichier pom.xml, le dossier src/) : | ||
+ | == Exemple de contenu : == | ||
+ | < | ||
+ | DB_HOST=192.168.100.100 | ||
+ | DB_NAME=bdclient | ||
+ | DB_USER=adminBDClient | ||
+ | DB_PASSWORD=mdpBDClient | ||
+ | </ | ||
+ | |||
+ | Dans les fichiers de configuratin (Project Files-fichier pom.xml), ajouter une dépendance dotenv-java (librairie utilisable avec Maven) : | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | </ | ||
+ | </ | ||
+ | Dans le code, | ||
+ | - importation de l librairie : < | ||
+ | - exemple d' | ||
+ | < | ||
+ | // 1.Chargement du fichier .env à la racine du projet | ||
+ | Dotenv dotenv = Dotenv.load(); | ||
+ | | ||
+ | // 2. Initialisation des paramètres de connexion | ||
+ | String host = dotenv.get(" | ||
+ | String dbname = dotenv.get(" | ||
+ | String url = " | ||
+ | url += "? | ||
+ | System.out.println(" | ||
+ | String user = dotenv.get(" | ||
+ | System.out.println(" | ||
+ | String passwd = dotenv.get(" | ||
+ | System.out.println(" | ||
+ | | ||
+ | // 3. Connexion | ||
+ | connect = (Connection) DriverManager.getConnection(url, | ||
+ | </ | ||
+ | == Pour le déploiement == | ||
+ | Dans pom.xml, configurer le plugin maven-resources-plugin pour que .env soit copié dans le target/ à chaque build. | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | </ | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | </ | ||
+ | </ | ||
+ | </ | ||
+ | </ | ||
+ | </ | ||
+ | </ | ||
+ | </ | ||
+ | </ | ||
+ |