IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

 

Développons en Java avec Eclipse   0.80.1  
Copyright (C) 2003-2008 Jean-Michel DOUDOUX    (date de publication : 26/12/2008)

[ Précédent ] [ Sommaire ] [ Suivant ] [Télécharger ]      [Accueil ]

 

31. Les bases de données et Eclipse

 

chapitre 3 1

 

Eclipse ne propose pas par défaut de plug-in capable de gérer ou de manipuler une base de données, mais il existe de nombreux plug-in permettant d'accomplir certaines de ces tâches. Ce chapitre va présenter quelques uns d'entres eux :

  • Quantum
  • JFaceDBC
  • DBEdit
  • Clay Database Modelling

 

31.1. Quantum

Quantum est un plug-in qui permet l'exécution de requêtes sur une base de données. Il affiche une vue arborescente des bases de données et propose plusieurs assistants pour effectuer des mises à jour sur les données.

Les bases de données supportées sont : Postgres, MySQL, Adabas-D, Oracle, DB2, DB2 for AS400.

Le site officiel est http://quantum.sourceforge.net/

 

Version utilisée dans cette section

Eclipse

2.1.2

J2RE

1.4.2_02

Quantum

2.2.2.

La version utilisée dans cette section nécessite obligatoirement un JDK 1.4 pour fonctionner.

 

31.1.1. Installation et configuration

Après voir téléchargé le fichier quantum222.zip, il faut le décompresser dans le répertoire qui contient le répertoire d'Eclipse (attention : le chemin des fichiers de l'archive contient déjà le répertoire Eclipse).

Pour utiliser le plug-in, il faut ouvrir la perspective nommée "Quantum DB".

Quantum propose plusieurs vues :

Pour pouvoir utiliser une base de données, il faut l'enregistrer dans le bookmark. Pour cela, dans la vue « Database Bookmarks », cliquez sur le bouton  ou sélectionnez l'option « New Bookmark » du menu contextuel.

Une boite de dialogue permet de saisir les informations concernant la base de données.

L'exemple ci dessous contient les paramètres pour une base de données MySQL nommée "Test" avec le pilote MySQL Connector-J 3.0 (http://www.mysql.com/products/connector-j/).

  • « Bookmark name » : est le nom du bookmark (cette zone est libre)
  • « Username » : est le nom de l'utilisateur pour la connexion à la base de données
  • « Password » : est le mot de passe de cet utilisateur
  • « Connect » : est la chaîne de connexion dépendante du pilote utilisé (jdbc:mysql://localhost/test dans l'exemple)
  • « Driver » : est le nom de la classe du pilote JDBC (com.mysql.jdbc.Driver dans l'exemple)
  • « Type : » : est le type de base de données utilisée
  • « Driver Name » : et le fichier jar qui contient le pilote JDBC (D:\java\mysql-connector-java-3.0.11-stable\mysql-connector-java-3.0.11-stable-bin.jar dans l'exemple)

Un fois tous les paramètres requis saisis, il suffit de cliquer sur le bouton « Fin ».

Le bookmark apparait dans la liste. Le menu contextuel propose alors plusieurs options permettant de modifier ou de supprimer le bookmark. L'option "Connect" permet de demander la connexion à la base de données.

Aucun mot de passe n'ayant été fourni, une boite de dialogue demande le mot de passe.

Si il n'y a aucun mot de passe, il suffit de cliquer sur le bouton "OK".

La vue "Database Bookmarks" affiche l'arborescence de la base de données. Dans l'exemple, la base de données ne contient qu'une seule table nommée "personnes".

 

31.1.2. Afficher le contenu d'une table

Pour afficher le contenu d'une table, il suffit de double cliquer sur une table dans la vue « Data Bookmarks ».

La vue « Quantum Table View » affiche alors le contenu de la table.

Cette vue permet de trier et de filtrer le contenu de la table en cliquant que le bouton

Le filtre est défini dans la partie de gauche et le tri dans la partie de droite de la boîte de dialogue.

Le menu contextuel de la vue « Quantum Table View » propose des options pour faire des mises à jour des données de la table : insertion, modification et suppression.

Un assistant permet de saisir les données à ajouter dans la nouvelle occurrence de la table :

Une fois les données saisies, il suffit de cliquer sur le bouton « Fin » pour que la requête SQL générée soit exécutée. Pour voir les modifications dans la vue « Quantum Table View », il faut cependant explicitement demander le rafraichissement en cliquant sur le bouton  .

Un assistant permet de modifier les données d'une occurrence :

Le principe de la construction dynamique de la requête SQL est identique à celui de l'insertion d'une occurrence hormis le fait qu'il est possible de saisir les informations concernant la portée de la requête de mise à jour (clause Where).

L'assistant permettant la suppression d'une ou plusieurs occurrences s'utilise de la même façon :

 

31.1.3. Exécution d'une requête

L'éditeur « Quantum SQL Query Editor » permer de saisir des requêtes SQL avec une coloration syntaxique.

Le bouton  permet d'exécuter la requête.

Si la requête contient un erreur, alors un message d'erreur est affiché :

Un rond rouge en bas de la vue signale aussi une erreur lors de la dernière exécution.

La vue « Quantum SQL Log » affiche des informations sur l'exécution des requêtes.

Dans le cas d'une requête d'interrogation, le résultat est affiché dans la vue « Quantum Table View ».

Les boutons  et  permettent respectivement d'importer et d'exporter le contenu de l'éditeur dans un fichier possédant l'extension .sql par défaut.

La vue permet aussi de gérer les transactions. Le bouton  permet de préciser si le mode fonctionnement est auto-commit (bouton enfoncé) ou manuel. Dans le mode manuel, le bouton  permet de faire un commit des opérations non encore validées et le bouton  permet d'invalider les opérations non encore validées (rollback).

La vue « Query History » contient un historique des requêtes exécutées : un double clic sur une de ces requêtes permet de réafficher son contenu dans la vue « Quantum SQL Query ».

 

31.2. JFaceDbc

JFaceDBC est un plug-in qui propose de faciliter la manipulation d'une base de données. Ce plug-in possède quelques fonctionnalités intéressantes comme un système de gestion des connexions avec chargement dynamique des pilotes, l'affichage sous la forme graphique du schéma de la base de données ou la création pour une table des fichiers xml et java pour l'outil de mapping Hibernate.

Le site officiel est à l'url http://jfacedbc.sourceforge.net/

 

Version utilisée dans cette section

Eclipse

2.1.2

J2RE

1.4.2_02

JFaceDBC

2.2.1.

La version utilisée dans cette section nécessite un JDK 1.4 pour fonctionner.

 

31.2.1. Installation et configuration

Après voir téléchargé le fichier net.sf.jfacedbc_2.2.1.zip sur le site de JFaceDBC, il faut le décompresser dans le répertoire qui contient Eclipse. A l'exécution suivante, il est nécessaire de valider les modifications en attente et de relancer l'application.

Il est aussi possible d'installer JFaceDBC en utilisant le gestionnaire de mises à jour avec l'URL http://jfacedbc.sourceforge.net/update-site/site.xml

JFaceDBC propose une perspective particulière.

Cette perspective se compose de plusieurs vues et editeurs.

La vue "Drivers" permet de gérer les pilotes JDBC.

Un certain nombre d'entre eux sont préconfigurés et chargés dynamiquement si ils sont trouvés dans le classpath. Si le chargement a réussi alors une petite coche bleu est affichée au lieu d'une croix blanche dans un rond rouge.

Il est possible d'ajouter un nouveau pilote en cliquant sur le bouton  . Voici un exemple avec le pilote MySQL Connector-J 3.0

Il faut renseigner le nom du pilote, un exemple d'URL de connexion, sélectionner le fichier jar pour l'ajouter dans l'onglet « Extra Class Path », saisir le nom de la classe du Pilote et cliquer sur le bouton « OK »

Si le chargement du pilote a réussi, alors la petite coche bleue est affichée.

La vue "Aliases" permet de gérer des connexions. Pour ajouter un alias, il suffit de cliquer sur le bouton  ou d'utiliser l'option « Create New Alias » du menu contextuel.

Une boite de dialogue permet de saisir les informations concernant le nouvel alias de connexion.

Il faut saisir un nom, sélectionner le pilote parmis la liste de ceux définis, saisir l'URL de la connexion, le nom de l'utilisateur et son mot de passe.

Pour ouvrir une connexion, il suffit de double cliquer sur l'alias ou d'utiliser l'option « Open » de son menu contextuel.

Saisissez les informations et cliqueez sur le bouton "OK". JFaceDBC retrouve les informations de la base de données

La vue "Connections" affiche la ou les connexions actives :

La vue « Database Structure » affiche les bases de données accessibles via la connexion.

La vue « Connection Info » permet d'obtenir des informations sur les paramètres de la connexion .

Pour connaître la structure d'une table, il suffit de la sélectionner dans la vue « Database Structure View »

Les données peuvent être visualisées dans l'onglet « Preview ».

Une table possède un menu contextuel qui propose plusieurs options :

L'option « Generate Select in SQL Editor » ouvre l'éditeur SQL (« SQL Editor ») avec une requête permettant d'afficher le contenu de la table.

 

31.2.2. La mise à jour des données d'une table.

JFaceDBC propose une fonction pour mettre à jour les données d'une table.

Attention, cette fonctionnalité n'est utilisable qu'avec un pilote JDBC autorisant les déplacements des curseurs dans les deux sens.

Pour utiliser cette fonctionnalité, il suffit d'utiliser l'option « Edit Table Data » du menu contextuel d'une table dans la vue « Database Structure ».

Il suffit alors de cliquer sur les données à modifier et de saisir sa nouvelle valeur :

Il est possible d'appliquer un filtre pour limiter le nombre d'occurrences affichées dans la grille. Pour cela, il suffit de saisir la clause where qui sera ajoutée à la requête de sélection et de cliquer sur le bouton « Apply ».

 

31.2.3. L'éditeur SQL

Pour ouvrir un nouvel éditeur SQL, il faut créer une nouvelle entité du type «  JFaceDBC/JFaceDBC SQL Editor »

L'assistant demande ensuite le nom du fichier .sql qui sera créé et de sélectionner le projet qui va le contenir.

Un clic sur le bouton « Fin » crée le fichier et ouvre l'éditeur :

La première liste déroulante permet de sélectionner la connexion qui sera utilisée.

La seconde liste déroulante permet de sélectionner la base de données à utiliser.

Le bouton  ou l'option « Execute SQL » du menu contextuel permet de lancer l'exécution de la requête.

Le résultat de la requête s'affiche dans la vue « SQL Results ».

L'éditeur propose une coloration syntaxique des différents éléments de la requète mais aussi une complétion de code pour les tables et les champs, ce qui est très pratique. Cette fonction est appelée en utilisant la combinaison de touches "Ctrl + espace".

 

31.2.4. Vue graphique d'une base de données

Une autre fonctionnalité intéressante de JFaceDBC est de pouvoir afficher un schéma d'une base de données sous une forme graphique.

Pour cela, il faut créer une nouvelle entité de type "JFaceDBC/JFaceDBC SQL Schema Visualizer".

L'assistant demande ensuite le nom du fichier .sqls qui sera créé et de sélectionner le projet qui va le contenir.

Un clic sur le bouton « Fin » créé le fichier et ouvre l'éditeur. Par défaut, ce dernier est vide.

Pour ajouter une nouvelle table au schéma, il suffit de faire un cliquer/glisser entre une table de la vue « Database Structure » et l'éditeur.

Le menu contextuel de l'éditeur propose l'option « Reverse Database ». Un assistant demande de sélectionner la connexion concernée.

Il suffit de sélectionner la connexion concernée et de cliquer sur le bouton « Suivant ».

Il faut ensuite sélectionner la ou les bases de données à inclure parmis celles accessibles via la connexion.

Cliquer sur le bouton « Suivant ». L'assistant demande de sélectionner la ou les tables concernées.

Un clic sur le bouton « Fin » génére le schéma dans l'éditeur.

 

31.3. DBEdit

DBEdit est un plug-in qui permet l'exécution de requêtes sur une base de données.

Le site officiel est http://sourceforge.net/projects/dbedit

 

Version utilisée

Eclipse

2.1.2

J2RE

1.4.2_02

DBEdit

1.0.1.

 

31.3.1. Installation et configuration.

Il faut télécharger le fichier dbedit_1.0.1.bin.dist.zip sur le site de DBEdit et décompresser son contenu dans le répertoire d'installation d'Eclipse. A l'exécution suivante, il est nécessaire de valider les modifications en attente et de relancer l'application.

Il est aussi possible d'utiliser l'URL http://www.geocities.com/uwe_ewald/dbedit/site dans le gestionnaire des mises à jour.

DBEdit propose une perspective particulière.

Cette perspective se compose de plusieurs vues et editeurs.

La première chose à faire est de définir une connexion en utilisant l'option « Connection/Configure » du menu contextuel de la vue « Tables ». Une boite de dialogue permet de gérer les connexions.

Pour ajouter une nouvelle connexion, il suffit de cliquer sur le bouton « New ».

 I

Il suffit alors de saisir les informations nécessaires :

  • Name : est le nom de la connexion
  • JDBC Driver : permet de préciser le nom de la classe du pilote JDBC
  • Serveur URL : est l'URL de connexion
  • User et password : sont le nom et le mot de passe de l'utilisateurs

Un clic sur le bouton « Apply » valide les informations.

Il faut ensuite ajouter le pilote au classpath en cliquant sur l'onglet « Classpath »

Il suffit de cliquer sur le bouton « Add Archive » et de sélectionner le fichier Jar contenant le pilote à utiliser.

L'onglet « Additional » permet de préciser des paramètres supplémentaires au pilote JDBC.

Un clic sur le bouton « Connect » permet d'ouvrir la connexion.

 

31.3.2. La vue « Tables »

Par défaut, elle affiche la liste des connexions enregistrées. Pour ouvrir une connexion, il suffit d'utiliser l'option « Connection/Connect » du menu contextuel d'une connexion.

Si le pilote n'est pas inclus dans le classpath, un message d'erreur est affiché

Une fois la connexion établie, la vue « Tables » affiche une arborescence contenant les éléments de la base de données : tables, vues, champs, index ....

A partir du menu contextuel de cette vue, il est possible de réaliser plusieurs actions :

  • créer une nouvelle entité : connexion, schéma, table, fichier SQL
  • importer ou exporter une table
  • ouvrir une table dans l'éditeur

L'export se fait avec un assistant :

Il faut sélectionner "Database" et cliquer sur le bouton « Suivant »

Il faut sélectionner la connexion et les tables concernées, sélectionner le répertoire de destination et cliquer sur le bouton « Fin ».

L'exportation se fait sous le forme de requètes SQL :

L'importation se fait aussi avec un assistant

Il suffit de sélectionner les entités et de cliquer sur le bouton « Suivant ». La page suivante permet de préciser les options de correspondance des types de données.

Un clic sur le bouton « Fin » permet de lancer l'importation.

Un clic sur le bouton  permet de régler certaines options d'affichage.

L'option "Filters" permet de restreindre les types d'éléments qui sont affichés :

 

31.3.3. L'editeur « Table »

Sur la vue « Tables », l'option « Open with/ Table Editor » du menu contextuel d'une table permet d'ouvrir un éditeur avec les données de la table.

Par défaut, l'éditeur est en mode consultation. Le menu contextuel permet de réaliser certaines opérations :

  • Edit Mode : permet de basculer dans le mode de mise à jour des données pour un seul champ
  • Insert Row : permet d'insérer une nouvelle occurrence dans la table
  • Delete Row : permet de supprimer l'occurrence sélectionnée

Chaque mise à jour doit être confirmée dans une boîte de dialogue

Un clic sur le bouton « Details » permet d'obtenir des informations précises sur l'opération.

Le bouton  dans la barre d'outils permet de rafraichir les données de l'éditeur. Le bouton  dans la barre d'outils permet de saisir un filtre.

 

31.3.4. La vue Log

Cette vue recense toutes les requêtes SQL qui sont exécutées.

 

31.3.5. L'éditeur Instant SQL

Cet éditeur permet de saisir et d'exécuter des requêtes. Il suffit de saisir la requête dans la zone d'édition

puis de cliquer sur le bouton  pour lancer l'exécution

Il est possible de limiter le nombre d'occurences renvoyées par une requête. Ceci est nécessaire pour des tables possèdant de nombreuses occurences car dans ce cas un affichage de toutes les occurences provoque une exception de type OutOfMemory. Ce nombre d'occurences est réglable dans les préférences.

La version 1.0.2 propose une pagination sur les occurences obtenues en fonction du nombre d'occurences maximales à afficher. Pour l'activer, il faut utiliser l'option "Toogle" du menu contextuel de la barre de titre "Résultats".

L'activation de cette option affiche un panneau permettant la pagination.

 

31.4. Clay Database Modelling

Ce plug-in permet de concevoir ou retro-concevoir une base de données graphiquement.

Les base de données supportées sont : HSQLDB, MySQL, PostgreSQL, Firebird, ANSI SQL-92, SAP DB, McKoi.

Le site officiel est http://www.azzurri.jp/en/software/clay/index.jsp

  Version utilisée dans cette section

Eclipse

2.1.2

J2RE

1.4.2_02

Clay Database Modelling

0.9.5


Ce plug-in nécessite le plug-in GEF (Graphical Editor Framework). Si il est absent, un message d'erreur est affiché.

 

31.4.1. Installation et configuration.

Il faut télécharger le fichier jp.azzurri.clay.core_0.9.5.bin.dist.20031201.zip sur le site du plug-in et décompresser son contenu dans le répertoire d'installation d'Eclipse. A l'exécution suivante, il est nécessaire de valider les modifications en attente et de relancer l'application.

L'installation par le gestionnaire de mises à jour est possible en utilisant l'url http://www.azzurri.jp/eclipse/plugins

 

31.4.2. Mise en oeuvre

Clay Database Modelling ne propose pas de perspective particulière.

Il faut créer un nouveau projet ou utiliser un projet existant. Dans ce projet, il faut définir un nouveau modèle en utilisant l'option de création d'un nouvel élément de type « Autre ...  ».

Il faut sélectionner « Database design » et « Azzurri Clay Database Design Diagram »  puis cliquer sur le bouton « Suivant ».

Il faut sélectionner l'emplacement du fichier de données (par défaut le répertoire du projet en cours), saisir le nom de ce fichier, et sélectionner le type de base de données cible dans lequel les scripts SQL seront générés.

Un éditeur dédié s'ouvre avec le fichier créé, par défaut vide.

L'option « Edit Database Model » du menu contextuel permet de saisir des informations concernant le modèle.

Dans cette boîte de dialogue, la donnée « SQL Dialect » est particulièrement importante car elle va conditionner les possibilités de l'éditeur selon le type de base de données sélectionnées, notamment par exemple au niveau des types de données utilisables dans les définitions de tables.

Le bouton  permet d'ajouter une nouvelle table au modèle en cliquant sur le bouton puis sur la zone d'édition de l'éditeur.

L'option « Edit Table » du menu contextuel permet de saisir des données générales de la table tel que son nom, une description ou des remarques.

Un double clic sur la nouvelle table créée ou l'utilisation de l'option « Edit Table Column » permet de saisir la description des champs qu'elle va contenir.

Pour ajouter une nouvelle colonne, il suffit de cliquer sur le bouton « Add New »

Il suffit alors de saisir les données du nouveau champ. L'opération doit être répétée pour chaque table du modèle. Exemple :

La vue "Structure" affiche sous une forme arborescente la structure du modèle avec les différents éléments qui la compose.

Il est possible de créer des index en utilisant l'option « Edit Table Indexes » du menu contextuel.

Pour ajouter un nouvel index, il faut cliquer sur le bouton « New »

Pour ajouter un champ dans l'index, il faut cliquer sur le bouton « New » dans « Key Column List »

Sélectionnez le champ et cliquez sur le bouton « Ok ». Une fois toute les informations saisies, il suffit de cliquer sur le bouton « OK ». Le nouvel index apparaît dans la vue « Structure ».

Il est possible de définir des index uniques en utilisant l'option « Edit Table Unique Keys » du menu contextuel.

Pour ajouter un nouvel index, il faut cliquer sur le bouton « New »

Pour ajouter un champ dans l'index, il faut cliquer sur le bouton « New » dans « Key Column List ».

Sélectionnez le champ et cliquez sur le bouton « Ok ». Une fois toutes les informations saisies, il suffit de cliquer sur le bouton « OK ». Le nouvel index apparaît dans la vue « Structure »

Le bouton  permet de créer des relations entre deux tables. Pour cela, il faut cliquer sur le bouton, cliquer sur la table contenant la clé étrangère puis cliquer sur la table référence.

Le lien entre les deux tables apparait sous la forme d'une flèche bleu entre les deux tables. Le menu contextuel « Edit Foreign Key » permet de modifier la clé étrangère.

 

31.4.3. Rétro-conception d'un modèle

L'option « Reverse Engineer Database »  du menu contextuel de l'éditeur permet de rétro-concevoir un modèle à partir d'une base de données existante.

Un assistant permet de sélectionner ou de saisir les informations concernant la connexion à la base de données.

Cliquez sur le bouton « Add New »

Une boite de dialogue permet de saisir les informations nécessaires à la connexion :

  • le type de connexion peut être choisi dans la liste : si celui ci n'apparaît pas dans la liste, alors il faut sélectionner « unknown »
  • l'alias est un nom qui permet de reconnaître la connexion
  • user et password sont le nom de l'utilisateur et son mot de passe utilisé pour la connexion
  • JDBC Driver est le nom pleinement qualifié de la classe contenant le pilote à utiliser
  • Driver Location est le chemin du fichier jar contenant la classe du pilote

Cliquez sur le bouton « Ok ».

Sélectionnez l'alias et cliquez sur le bouton « Suivant ». La connexion à la base de données s'effectue et l'assistant demande la sélection du schéma. Dans l'exemple de cette section, il n'y en a pas.

Cliquez sur le bouton « Suivant ». L'assistant demande de sélectionner les tables qui doivent être intégrées dans le modèle.

Pour sélectionner une table, il suffit de la sélectionner dans la liste de gauche et de la faire basculer dans la liste de droite en utilisant le bouton « > ». Une fois la sélection terminée, il suffit de cliquer sur le bouton « Fin ».

L'assistant traite la demande et affiche le résultat des traitements dans l'éditeur.

 

31.4.4. Génération du DDL

L'option « Generate SQL (CREATE TABLE) script »  permet de demander la création d'un fichier contenant les ordres de création des éléments de la base de données grâce à un assistant.

Il faut sélectionner le dossier qui va contenir le fichier, saisir le nom de ce fichier et cliquer sur le bouton « Suivant ».

La page suivante permet de sélectionner les types d'ordres qui seront générés. Un clic sur le bouton « Fin » permet de générer le fichier et de l'ouvrir dans l'éditeur associé au fichier .sql.

Exemple :
DROP TABLE IF EXISTS Factures;
DROP TABLE IF EXISTS Clients;
CREATE TABLE Clients (
  id_clients INT(10) NOT NULL AUTO_INCREMENT
  , nom_clients CHAR(150)
  , PRIMARY KEY (id_clients)
) TYPE=InnoDB;
CREATE TABLE Factures (
    id_factures INT(10) NOT NULL AUTO_INCREMENT
  , num_factures CHAR(10)
  , date_factures DATE 
  , id_clients INT(10) 
  , UNIQUE UQ_Factures_1 (num_factures)
  , PRIMARY KEY (id_factures)
  , INDEX (id_clients)
  , FOREIGN KEYFK_Factures_1 (id_clients)
      REFERENCES Clients (id_clients)
) TYPE=InnoDB;
  
CREATE INDEX IX_Factures_1 ON Factures (id_clients ASC);

 

 


[ Précédent ] [ Sommaire ] [ Suivant ] [Télécharger ]      [Accueil ]

Copyright (C) 2003-2008 Jean-Michel DOUDOUX. Vous pouvez copier, redistribuer et/ou modifier ce document selon les termes de la Licence de Documentation Libre GNU, Version 1.1 ou toute autre version ultérieure publiée par la Free Software Foundation; les Sections Invariantes étant constitués du chapitre Préambule, aucun Texte de Première de Couverture, et aucun Texte de Quatrième de Couverture. Une copie de la licence est incluse dans la section GNU FreeDocumentation Licence. La version la plus récente de cette licence est disponible à l'adresse : GNU Free Documentation Licence.