Eclipse Data Tools Platform (DTP) est un ensemble de frameworks et outils pour la création, gestion et utilisation des sources de données (bases de données, fichiers, etc.) d'une façon interactive et centralisée.
Elle permet de travailler avec les bases de données via le langage SQL; création de bases de données, requêtes, mise à jour etc. Via une interface SQL (texte) standard ou maintenant (version 1.6) avec une interface graphique.
Cette plateforme est utilisée par plusieurs distributions d'Eclipse comme WTP, et BIRT
Avoir plusieurs sources de données et non uniquement des bases est un objectif essentiel pour DTP avec l'idée de centraliser des connexions avec les sources de données, permettant une seule définition et de multiple accès dans plusieurs projets Eclipse, à une source de données.
-Une base de données (ou serveur de base de données) :
Derby, MySQL par exemple
-Une distribution Eclipse avec DTP :
Quelques distributions Eclipse sont équipées en standard de DTP comme par exemple Eclipse for JEE
Ou bien pour une installation Eclipse Standard avec des logiciels supplémentaires :
Eclipse 3.4
EMF & SDO 2.4
GEF 3.4
DTP 1.6
La version de DTP utilisée est DTP 1.6 et la plateforme Eclipse est Eclipse 3.4
Ce tutoriel utilise "Derby" et "MySQL" les deux bases de données sont libres
Note :
Eclipse, Data Tools Plateform et les dépendances sont disponibles sur le site d'Eclipse. http://www.eclipse.org.
Derby ou "Apache Derby" est une base de données Java, libre. Diffusée sous licence Apache, cette base de données est livrée en standard avec Java 6.
Les étapes pour configurer et utiliser "Derby" dans Eclipse sont :
1.Trouver "derby.jar" dans le dossier d'installation de Java 6
2.Configurer l'outil de développement bases de données et le driver
3.Utiliser la base de données
"derby.jar" est livré avec Java 6 :
Dans le Dossier_installation_java_6/db/lib
Astuce :
En lançant une commande "find" sur linux ou en recherchant "derby.jar" dans Windows, on trouve facilement le fichier "derby.jar"
find jdk1.6.0_06-64 -iname "derby.jar"
>>jdk1.6.0_06-64/db/lib/derby.jar
Dans Eclipse :
Window-> Preferences
Sélectionner -> "Data Management" -> Connectivity -> Driver Definition->Un clic sur Add
Une boîte de dialogue "new driver definition" s'ouvre
Un clic sur l'onglet Type/Name sélectionner Derby et sa version comme suite :
"Derby Embeded JDBC" 10.2
Note :
Pourquoi Embeded Derby ?
Utiliser Embeded Derby permet la création de bases de données directement dans le système de fichiers (sous forme d'un dossier) sans passer par la configuration du serveur de base de données.
Sélectionner comme suite
Sélectionner "derby.jar".
Un clic sur le bouton Edit JAR/Zip ouvre l'explorateur des fichiers
Note:
Cette opération est nécessaire uniquement à la première définition du driver. Il n'y aura plus de messages d'erreur par la suite
Dans l'explorateur de fichiers-> Sélectionner le chemin vers le fichier "derby.jar" -> OK
(Dossier d'installation de JDK/db/lib/derby.jar
Le fichier "derby.jar" est ajouté -> Un clic sur OK
Un deuxième clic sur OK pour fermer la fenêtre "Preferences".
Un clic sur "Window" -> Open perspective -> Other -> Database Development
"Database Perspective" :
Contient un explorateur et des views adaptés pour le travail avec les sources de données et en particulier les bases de données.
Dans "Data Source Explorer" -> sélectionner "Databases" ->un clic droit -> new
Note :
La création d'une base de données passe par la création d'un profile de connexion
Sélectionner "Derby" -> entrer le nom pour le profile de connexion (au choix) ->un clic sur "Next"
Un clic sur l'onglet "General" -> un clic sur le bouton "Browse" pour sélectionner un dossier de destination pour la base de données.
Enter un nom d'utilisateur dans "User name" et un mot de passe dans "Password"
(entrées optionnelles).
Ne rien changer dans le champ "URL". Ce champ change automatiquement avec le nom de la base.
Cocher la case "Create Database" et "Connect when the wizard completes"
Note :
Il est possible de se connecter à la base de données à chaque démarrage d'Eclipse -> cocher la case "connect every time the workbench is started"
ATTENTION !!!
En cas de modification du dossier de destination de la base de données avec "Browse", il ne faut surtout pas oublier d'entrer un nom physique pour la base de données, suite au chemin affiché dans la zone de texte "Database Location", sinon problème !!! Eclipse va tenter de créer un dossier "existant" pour sa base de données et va terminer avec des messages d'erreurs.
1.Le champ "Derby Embedded JDBC Driver", contient ici le driver pour Derby.
2.Il est possible avec "New driver definition" d'entrer les configuration d'un nouveau driver pour la base de données entrée dans l'étape précédente à partir de cette boîte sans être obligé de passer par windows -> Preferences -> "Data Management" -> Connectivity -> Driver Definition.
3.Il est possible de changer les configurations du driver avec "Edit driver definition"
Une fenêtre de confirmation avec des options concernant la création de la nouvelle base de données et le profile de connexion sont affichées.
Un clic sur "Finish" pour créer
Une connexion est déjà établie avec la base de données suite à sa création
Note :
Pour se connecter à une base de données si on n’a pas coché la case connect when the wizard completes, ou au nouveau démarrage d'Eclipse. Un clic droit sur la le profile de connexion dans Database -> connect.
Dans la boîte de dialogue "JDBC Connection Properties" -> Entrer le nom de la base de données avec le chemin dans "Database Location" ou Browse et sélectionner son dossier, Entrer le nom d'utilisateur dans "User Name" et le mot de passe dans "Password"
Un clic droit sur le profile de la connexion -> Disconnect
Il faut commencer par ouvrir test_derby -> Schemas -> APP.
Sélectionner "Tables" -> un clic droit sur "New Table"
Au minimum "Create statement"
1.Entrer le nom de la table
2.Un clic sur "Add column" pour ajouter une colonne
3.La colonne est ajoutée. Donner la un nom
4.Sélectionner la nature de la colonne
5.Entrer la longueur de la colonne, si applicable
Sélectionner si la colonne entrée peut avoir la valeur null ou non et sa valeur par défaut
Note :
On peut ajouter autant de colonnes qu'on le souhait, avec "Add Column"
Note :
Pour effacer une colonne -> sélectionner -> un clic sur "Delete Column"
Sélectionner les colonnes membres de la clé primaire, puis un clic sur "Finish"
Une fenêtre s'ouvre avec le code SQL pour la création de la table s'ouvre
Il suffit de le vérifier -> modifier ou non -> un clic droit -> Execute All
Le code SQL est bien exécuté -> le view "SQL Result" affiche "succuss" et le view "status" affiche le code exécuté
Note :
"KAS" est le nom d'utilisateur. La table PERSONNE est ajoutée dans KAS-> Tables
Un clic droit sur la table "PERSONNE" -> Data -> Edit
Un éditeur interactif avec les en-têtes s'ouvre permettant d'ajouter des données dans la table
Pour entrer une valeur -> un clic sur "new row"-> entrer valeur
Le déplacement est aussi possible avec "TAB"
L'entrée de données se termine -> clic droit -> Save pour sauvegarder les données dans la table.
D'autres options :
Sont disponible avec un clic droit dans l'éditeur, comme par exemple l'effacement d'une ligne
Permet d'avoir une vue global des connections, bases de données, tables, colonnes etc.
A part connect et disconnect d'autres options sont disponibles avec un clic droit sur un profile de connexion :
Rename Renommer le profile sélectionné
Delete Effacer le profile sélectionné
Ping Permet de tester le profile sélectionné et la connexion
Properties Permet de modifier les paramètres du profile
Refresh Actualiser la vue
Duplicate Dupliquer le profile
SaveOffline et Offline Sauvegarder et travailler hors ligne
Il est possible dans l'explorateur de données d'exporter un profile de connexion dans un fichier xml et pouvoir l'utiliser par la suite en l'important dans l'explorateur de données sur une autre plateforme Eclipse par exemple.
Un clic sur le bouton "Export"
Dans la boîte de dialogue "Export Connection Profiles"
Cocher le/les profiles à exporter
Entrer le nom d'un fichier de destination dans "Specify a file name"
Cocher "Encrypt file content" pour crypter le fichier de destination
Un clic sur OK
Note : Pour utiliser Browse, il n'est pas possible de naviguer et sélectionner un dossier et entrer un nom de fichier par la suite. Il faut vraiment naviguer et sélectionner un fichier
De la même manière que exporter il est possible d'importer un profile de connexion sauvegardé dans un fichier
Un clic sur le bouton "Import"
Entrer le nom du fichier profile ou "Browse"
Laisser décocher "Overwrite existing connection profiles with the same name" pour n'est pas écraser un profile pourtant le même nom
Un clic sur "OK"
Pour entrer des requête en SQL il y a deux possibilités :
-Création d'un fichier SQL (SQL File) voir plus loin
-Utiliser "SQL Scrapbook"
Un clic sur le bouton "SQL Scrapbook" ouvre un éditeur pour SQL à la même manière de "Scrapbook Page" pour Java
Entrer des commandes en SQL -> un clic droit dans l'éditeur -> Exécute ALL
Le "SQL Resultat" affiche la réussite ou l'échec de l'opération.
Le résultat de la requête est affiché dans "Result"
Dans l'éditeur de "SQL scrapbook" un assistant SQL est prêt à proposer d'insérer des commandes SQL, nom des tables, etc.
CTRL+Espace
SQL Query Builder, un composant de DTP, est un éditeur graphique SQL permettant de construire des requêtes SQL complexes ; création, édition et exécution.
Ses options changent selon la commande SQL en cours (par défaut select). Après la construction d'une requête un clic sur "OK" ferme "SQL Query Builder" et la requête est récupérée dans l'éditeur qui a lancé "SQL Query Builder" (fichier SQL, ou SQL Scrapbook)
Pour lancer "SQL Query Builder" (plusieurs façons sont possibles) -> Un clic droit à l'intérieur de "SQL Scrapbook" -> "Edit in SQL Query Builder" ou "ALT+Q"
Un clic droit à partir d'un fichier SQL (SQL File) -> "Edit in SQL Query Builder" ou "ALT+Q"
Ou bien un clic droit sur un fichier "SQL" (SQL File) -> Open with -> SQL Query Builder
Dans ce dernier cas "SQL Query Editor" est ouvert dans un éditeur séparé, qu'il est possible d'enregistrer. Mais on perd la possibilité de récupération de la requête.
Suite
Est composée de plusieurs parties :
1.Un éditeur SQL
2.Une partie pour ajouter et travailler graphiquement avec des tables
3.Une partie pour modifier des requêtes : select, insert, delete, etc
4.Une partie pour les compositions de requêtes complexe avec la partie 2
5.Un onglet pour l'affichage des résultats ou retourner à l'éditeur
Est un éditeur permettant d'entrer des requêtes SQL
Il dispose d'un assistant d'édition, disponible avec CTRL+ESPACE
Un autre assistant très intéressant disponible avec CTRL+SHIFT+ESPACE permettant d'avoir un exemple pour le type de la requête en cours
Pour exécuter une commande SQL -> clic droit dans l'éditeur et "Run SQL"
Dans l'éditeur de "SQL Query Builder" -> sélectionner "select" dans la requête SQL -> clic droit -> "Change Statement Type" -> sélectionner "INSERT" dans la liste -> OK
Ou dans la partie 3 -> sélectionner "Select statement" -> clic droit -> "Change Statement Type" -> sélectionner "INSERT" dans la liste -> OK
Ajouter une table dans la partie des table -> un clic droit -> Add table -> sélectionner la table à ajouter -> OK
Cocher par exemple la case "ID" dans la table PERSONNE (section tables).
Automatiquement la commande insert comporte maintenant "(ID)" dans l'éditeur et dans la partie colonnes (partie 4). La valeur "values" est mise à zéro.
Un autre moyen de sélectionner un champ est de cliquer sur la partie colonnes et sélectionner un champs.
Une troisième possibilité est d'entrer suite à l'insert dans l'éditeur "(ID)" et "0" après values
Note :
Les parties éditeur, table et colonne sont liées. Un changement dans une partie entraine le changement automatique des deux autres.
Note :
Pour sélectionner tous les champs -> commencer par sélectionner la table dans la partie "Table" -> Un clic sur table-> sur la table sélectionnée -> un clic droit
-> Select All Columns
Deux moyens sont possibles :
-Dans l'éditeur
-Dans la partie colonnes -> un clic dans la partie value -> Entrer valeur
Un clic droit dans l'éditeur -> Run SQL
Dans la fenêtre "SQL Results" la requête complète est affichée avec le résultat : succès ou échec
Pour une requête "delete" par exemple on procède de la même manière que dans "insert" et on peut aussi ajouter des conditions pour l'exécution de la requête
Dans la partie colonnes -> un clic directement sous le titre "Operator" sélectionner un opérateur parmi ceux proposés dans la liste d'opérateur.
On peut jouer aussi sur la valeur avec "Value" et sur des opérateurs AND et OR
Note :
Les requêtes avec les autres commandes SQL se construisent de la même manière et mêmes les requêtes les plus complexes.
Il est possible d'utiliser des possibilités offertes par DTP dans un projet Eclipse, comme par exemple un projet Java
Note :
Il est bien sûr possible d'utiliser DTP dans d'autres projets Eclipse, comme par exemple, un projet ressource, un projet Java, des projet d'autres langages etc. Java ici n'est qu'un exemple de projets.
File -> New -> Projet -> Java -> Java Project -> Next
Entrer le nom du projet dans "Project name" Un clic sur "Finish" -> Un message pour Java perspective est affiché -> OK
Pour créer un fichier SQL (SQL File) -> un clic droit sur le projet que nous venons de créer -> New -> Other -> SQL Development -> SQL File -> Next
Ou
File -> New -> SQL File
Sélectionner le nom du projet.
Entrer le nom du fichier SQL à créer dans "File Name"
Sélectionner le serveur de bases de données dans "Database server type"
Sélectionner le profile de la connexion créer précédemment dans "Connection profile name"
Sélectionner la base de données avec "Database name"
Un clic sur "Finish"
Le fichier SQL (SQL File) permet à partir d'un projet Eclipse, d'éditer, modifier, et de tester des requêtes. Il permet aussi de lancer "SQL Query Builder", l'interface graphique d'édition. Sauvegarder ce fichier permet d'avoir des requêtes SQL dans le même projet pour une utilisation ultérieure ou dans d'autres projets Eclipse.
Entrer une requête dans l'éditeur.
L'assistant est disponible avec CTRL+ESPACE
Pour exécuter une seule requête -> sélectionner la requête -> clic droit ->"Execute Selected Text" ou ALT+X
Pour exécuter l'ensemble de code dans l'éditeur -> clic droit -> "Execute ALL" ou CTRL+ALT+X
Un clic droit -> set connection Info permet de modifier le profile de connexion
ou de le spécifier -> en l'absence d'une connexion.
Pour entrer un commentaire -> le curseur à l'endroit pour placer le commentaire clic droit -> Toggle comment
Note :
Il faut avoir une connexion ouverte pour que l'éditeur fonctionne.
Il est possible d'entrer directement un morceau de code comme template, avec un clic droit dans l'éditeur -> Save as template. Personnaliser le template avec un nom et des variables -> un clic sur "OK"
Il est possible de lancer SQL Query Builder à partir du fichier SQL
Avec un clic droit -> Editer dans SQL Query Builder
Il est aussi possible de changer de perspective. Comme "Database Development Perspective" et lancer un éditeur "SQL Scrapbook" ou utiliser un "SQL Scrapbook" existant
MySQL est un serveur de base de données libre et sous licence GPL
Le nom de MySQL brille dans le monde de libre et n'a pas besoin d'autres descriptions.
MySQL Connector/J est le driver JDBC (type 4) officiel de MySQL et téléchargeable sur le site de MySQL sous forme d'un fichier *gz ou *zip. La version actuelle est 5.1
Les étapes pour se connecter à MySQL sont:
1.Télécharger le driver MySQL Connector/J sur le site de MySQL
2.Décompresser le fichier (zip ou gz) dans un dossier au choix
un dossier mysql-connector-java-5.1.6 est créé
3.Sélectionner le driver MySQL Connector/J dans "Driver definition"
4.Créer une base de données sur le serveur MySQL
5.Définir un profile de connexion avec MySQL et le driver de MySQL
6.Utiliser la connexion
Dans Eclipse -> Window -> Preferences
Sélectionner "Data Management" -> "Connectivity" -> "Driver Definitions" -> un clic sur le bouton "Add"
Dans l'onglet "Name/Type" -> Sélectionner MySQL JDBC Driver et la version 5.1
Note :
La version du driver est différente si la version de MySQL utilisée est différente
Un clic sur l'onglet "Jar List".
Le message d'erreur indique que le driver n'est pas trouvé
Un clic sur "mysql-connector-java-5.1.0-bin.jar
Un clic sur le bouton "Edit JAR/Zip"
Avec l'explorateur de fichiers sélectionner le fichier
"mysql-connector-java-5.1.0-bin.jar" (dans le dossier de décompression du driver JDBC de MySQL)
Note :
Bien sûr cette opération est nécessaire la première fois pour indiquer l'emplacement du driver
Quand le bon driver est trouvé et sélectionné, il y plus de messages d'erreur
Un clic sur "OK" -> un autre clic sur "OK" pour fermer la fenêtre de "Preferences".
Dans le Perspective Base de données
Note :
Si la perspective n'est pas déjà ouverte :
Un clic sur "Window" -> Open perspective -> Other -> Database Development
Dans "Data Source Explorer" -> sélectionner "Databases" ->un clic droit -> "New
"
Sélectionner "MySQL" -> entrer le nom pour le profile de connexion (au choix) et une description (optionnelle) ->un clic sur "Next"
Un clic sur l'onglet "General" -> entrer un nom pour la base de données dans "Database". C'est le nom logique, que va prendre la base de données
Enter le nom d'utilisateur et le mot de passe (ces deux champs sont obligatoires)
Attention !!!
Le wizard sélectionne par défaut "root" comme utilisateur et demande son mot de passe. Il est vivement conseillé d'avoir un utilisateur ordinaire sur MySQL et de l'utiliser.
Ajouter à la fin d'URL le nom d'une base de données créée déjà sur MySQL.
Attention !!!
Le nom de la base de données (Database) à la fin de l'URL doit être le nom d'une base de données, qui existe déjà sur MySQL
Attention !!!
Contrairement à la connexion "Derby", ici il n'y a pas de case "Create Database", ni "Upgrade database to current version"
Cocher la case "Connect when the wizard completes"
Un clic sur "Next" -> validr les données pour la création du profile et d'une base de données -> "Finish"
Note :
Il est possible de se connecter à la base de données à chaque démarrage d'Eclipse -> cocher la case "connect every time the workbench is started"
La connexion est établie. L'utilisation passe par "SQL Scrapbook" ou un fichier SQL (SQL File) et les requêtes SQL, comme pour la base de données "Derby"
Note :
Ici la table PERSONNE_dans_MySQL est physiquement dans une base de données "test" sur le serveur de MySQL
"Window" > "Preferences" ->"Data Management" -> SQL Development
Des options permettant de personnaliser les volets de Développement SQL, comme par exemple "SQL Results", "SQL Query Builder", les options des fichiers SQL, l'orientation de volets etc.
DTP d'Eclipse a beaucoup d'autres fonctionnalités concernant les bases de données ou les données en général, Web services, fichiers XML etc.
Beaucoup d'autres fonctionnalités, qui touchent les bases de données ne sont pas abordées dans ce tutoriel (ce n'est pas un tutoriel sur SQL) comme les requête avec "WITH", le groupage, le groupage avec conditions, les jointures. Ce genre de requête n'est pas plus difficile à construire que la requête simple avec INSERT, dans "SQL Query Builder", mais le tutoriel est déjà assez long :-;
Merci
http://www.eclipse.org
http://www.mysql.com
http://java.sun.com
http://db.apache.org/derby