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
enseignement:d14:tp:tp6 [2014/10/06 11:53] Emmanuel Brunoenseignement:d14:tp:tp6 [2023/09/20 18:52] (Version actuelle) – modification externe 127.0.0.1
Ligne 5: Ligne 5:
  
 Ce TP peut être fait en utilisant en particulier postgresql (installé en salle de TP) ou la base de données h2 (http://www.h2database.com/html/cheatSheet.html) que vous ferez fonctionner en serveur. Ce TP peut être fait en utilisant en particulier postgresql (installé en salle de TP) ou la base de données h2 (http://www.h2database.com/html/cheatSheet.html) que vous ferez fonctionner en serveur.
 +
 +Il est aussi possible d'utiliser très simplement un serveur mysql (ou postgresql) avec [[https://www.docker.com/|Docker]] :
 +
 +sous linux mint en root
 +
 +export http_proxy='http://user:password@proxy-host:proxy-port'
 +export https_proxy='http://user:password@proxy-host:proxy-port'
 +
 +# Add the repository to your APT sources
 +sudo echo deb https://get.docker.com/ubuntu docker main > /etc/apt/sources.list.d/docker.list
 +
 +sudo apt-get update
 +sudo apt-get install -y docker.io cgroup-lite apparmor
 +
 +sudo usermod -a -G docker $USER
 +
 +Edit /etc/defaults/docker and add the following lines:
 +export http_proxy='http://user:password@proxy-host:proxy-port'
 +
 +service docker restart
 +
 +  docker run --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=ArraujUrb4 -d mysql
  
 Pour éditer la base de données vous pouvez utiliser pgadmin3, installer http://sqldeveloper.solyp.com/ ou utiliser directement Intellij Idea (http://www.jetbrains.com/idea/webhelp/configuring-a-db-data-source.html). Pour éditer la base de données vous pouvez utiliser pgadmin3, installer http://sqldeveloper.solyp.com/ ou utiliser directement Intellij Idea (http://www.jetbrains.com/idea/webhelp/configuring-a-db-data-source.html).
  
 ===== Utilisation simple de JDBC ===== ===== Utilisation simple de JDBC =====
-  - Avec le script {{:enseignement:m1:inf2:journal.zip|journal.zip}} créer les tables qui représentent des journaux.+  - Avec le script {{:enseignement:d14:tp:journal.sql.tgz|}} créer les tables qui représentent des journaux.
   - Créer une classe que se connecte à votre base de donnée. Pensez à mettre en place correctement les librairies nécessaires. Pour le moment, la connexion sera représentée par une variable d'instance.   - Créer une classe que se connecte à votre base de donnée. Pensez à mettre en place correctement les librairies nécessaires. Pour le moment, la connexion sera représentée par une variable d'instance.
   - Ajouter une méthode qui affiche la liste des journaux en utilisant un ''Statment''   - Ajouter une méthode qui affiche la liste des journaux en utilisant un ''Statment''
Ligne 148: Ligne 170:
  
 ===== Pour finir ===== ===== Pour finir =====
-  - Créer une interface ''Entity'' qui impose les méthodes ''persist(Connection c)''''remove(Connection c)''et ''merge(Connection c)''. Créer une classe EntityManager qui offre les méthodes ''persist(Entity e)''''remove(Entity e)''et ''merge(Entity e)''C'est l'entity manager qui connait la datasource et passe les connections aux entités.   +  * Mettez en place un pool de connections avec Apache Commons DBCP : https://www.baeldung.com/java-connection-pooling 
-    - Créer une classe qui spécialise la classe Chien en implante l'interface précédente et qui permet de  +  * Créer une interface générique paramétrée par le type qui sera celui de votre entité (Personne, Chien, ...) cette interface proposera par exemple les methodes : T find(long id), List<T> findAll(), persist(T), update(T), remove(T). Vous pourrez ensuite améliorer cette interface. 
-    - Créer une instance unChien de Chien persistant. +  Créer une classe d'entité Personne, une classe DAOPersonne qui implante DAO<Personne>. 
-    - Tester : +  * Ajouter des méthodes spécifiques à la DAO.
-      - Invoquer ''EntityManager.persist(unChien)'' pour ajouter ce Chien dans la base de données +
-      - Modifier l'instance de Chien en mémoire (éventuellement plusieurs fois) et faire une mise à jour dans la base de données avec ''EntityManager.merge(unChien)''  +
-     - Et finalement de supprimer le Chien avec ''EntityManager.remove(unChien)''+
-  - Implanter dans la classe Chien des méthodes qui permettent de retrouver et d'instancier un ou des Chiens en fonction de différents critères : +
-    - ''Chien findById(...)'' +
-    - ''List<ChienfindByName(...)'', ..+
-      +
-En vous inspirant de cet exemple http://onjava.com/pub/a/onjava/excerpt/swinghks_hack24/index.html, créer une JTable qui permet d'afficher les Chiens contenus dans la base de données.+
  
 {{tag>D14 TP Java JDBC}} {{tag>D14 TP Java JDBC}}
- 
----- dataentry page ---- 
-type                 : TP 
-enseignement_tags    : D14 
-technologie_tags    : Java,JDBC 
-theme_tags          ; Base de données 
----- 
 ---- struct data ---- ---- struct data ----
 +metadata.level       : 
 +metadata.Type        : TP
 +metadata.Nom         : 
 +metadata.Enseignements : D14
 +metadata.Promotions 
 +metadata.Technologies : Java, JDBC
 +metadata.Thèmes     : Base de données
 +metadata.Description : 
 ---- ----