d3:tp04

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
d3:tp04 [2025/10/09 11:11] – [D3-TP04 : Projet gestion de clients(4) - Persistance des données (1)] dthevenotd3: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) ======
 <bootnote>  <bootnote> 
-  * version "JDBC manuel" (Java DataBase Connectivity : API standard pour interagir avec les bases données relationnelles en Java) -> à passer en [[d3:TP04:JPA]] (ORM)+  * version "JDBC manuel" (Java DataBase Connectivity : API standard pour interagir avec les bases données relationnelles en Java) -> à passer en [[d3:TP04:JPA]] [[d3:TP06|JPA]](ORM)
   * fichier configuration mariadb sur le serveur(sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf) à modifier (bind-address=0.0.0.0) pour accès distant   * fichier configuration mariadb sur le serveur(sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf) à modifier (bind-address=0.0.0.0) pour accès distant
   * relancer le serveur    * relancer le serveur 
Ligne 92: 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'applications. Il joue un rôle crucial dans la gestion des paramètres sensibles tels que les clés API, **les informations sur les bases de données** ou d’autres configurations environnementales qui ne devraient pas être visibles dans le code source. Grâce à ce type de fichier, les développeurs peuvent garantir la **sécurité des données** tout en conservant une **flexibilité dans la configuration des projets**.
 +
 +=== 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 : ==
 +<code>
 +DB_HOST=192.168.100.100
 +DB_NAME=bdclient
 +DB_USER=adminBDClient
 +DB_PASSWORD=mdpBDClient
 +</code>
 +
 +Dans les fichiers de configuratin (Project Files-fichier pom.xml), ajouter une dépendance dotenv-java (librairie utilisable avec Maven) :
 +<code>
 +<dependency>
 +    <groupId>io.github.cdimascio</groupId>
 +    <artifactId>dotenv-java</artifactId>
 +    <version>3.0.0</version>
 +</dependency>
 +</code>
 +Dans le code, 
 +  - importation de l librairie : <code>import io.github.cdimascio.dotenv.Dotenv;</code>
 +  - exemple d'utilisation pour la connexion à la base de données :
 +<code>
 +      // 1.Chargement du fichier .env à la racine du projet
 +      Dotenv dotenv = Dotenv.load();
 +      
 +      // 2. Initialisation des paramètres de connexion
 +      String host   = dotenv.get("DB_HOST");                  // Serveur de bd
 +      String dbname = dotenv.get("DB_NAME");                  // Nom bd
 +      String url = "jdbc:mariadb://" + host + "/" + dbname;   // url de connexion
 +      url += "?autoReconnect=true";  // Ajout 26/09/2021
 +      System.out.println("url : "+url);
 +      String user = dotenv.get("DB_USER");                    // nom du user
 +      System.out.println("nomUtil : "+user);
 +      String passwd = dotenv.get("DB_PASSWORD");              // mot de passe
 +      System.out.println("mdp : "+passwd);
 +      
 +      // 3. Connexion
 +      connect = (Connection) DriverManager.getConnection(url, user, passwd);
 +  </code>
 +== Pour le déploiement ==
 +Dans pom.xml, configurer le plugin maven-resources-plugin pour que .env soit copié dans le target/ à chaque build.
 +<code>
 +<plugin>
 +                <groupId>org.apache.maven.plugins</groupId>
 +                <artifactId>maven-resources-plugin</artifactId>
 +                <version>3.3.1</version>
 +                <executions>
 +                    <execution>
 +                        <id>copy-env</id>
 +                        <phase>process-resources</phase>
 +                        <goals>
 +                            <goal>copy-resources</goal>
 +                        </goals>
 +                        <configuration>
 +                            <outputDirectory>${project.build.outputDirectory}</outputDirectory>
 +                            <resources>
 +                                <resource>
 +                                    <directory>${basedir}</directory>
 +                                    <includes>
 +                                        <include>.env</include>
 +                                    </includes>
 +                                </resource>
 +                            </resources>
 +                        </configuration>
 +                    </execution>
 +                </executions>
 +            </plugin>
 +   </code>
 +
  • d3/tp04.1760001100.txt.gz
  • Dernière modification : 2025/10/09 11:11
  • de dthevenot