Treebolic

navigateur SQL

Treebolic Browser pour SQL est une extension destiné à visualiser le résultat de requêtes SQL sur une base de donnée.

image

Cliquer ici pour un aperçu.

Le code is contenu dans TreebolicSql.jar

La ligne de commande est :

Unices java -classpath ./BIN/TreebolicBrowser.jar:./BIN/Treebolic.jar:./BIN/TreebolicSql.jar[:<driver>]  treebolic.browser.Browser home=./HTMLBROWSE/appsql.html [sql=<sqlpropertyfile> | query]
Windows java -classpath ./BIN/TreebolicBrowser.jar;./BIN/Treebolic.jar;./BIN/TreebolicSql.jar[;<driver>]  treebolic.browser.Browser home=./HTMLBROWSE/appsql.html [sql=<sqlpropertyfile> | query]

par exemple:

java -classpath ./BIN/TreebolicBrowser.jar;./BIN/Treebolic.jar;./BIN/TreebolicSql.jar;./SQL/mysql-connector-java-3.0.7-stable-bin.jar  treebolic.browser.Browser home=./HTMLBROWSE/appsql.html sql=query

java -classpath ./BIN/TreebolicBrowser.jar:./BIN/Treebolic.jar:./BIN/TreebolicSql.jar:./SQL/mysql-connector-java-3.0.7-stable-bin.jar treebolic.browser.Browser home=./HTMLBROWSE/appsql.html home=./HTMLBROWSE/appsql.html sql=query
 

REQUETES

De nombreuses informations sont nécessaires:

On doit effectuer trois types de requêtes sur la base.

Les trois requêtes doivent retourner un ensemble-résultat (result sets) comportant les informations décrites ici.

BOITE DE DIALOGUE

On trouver ici un aperçu des données brutes. Afin de rendre le navigateur parfaitement polyvalent, chaque paramètre est modifiable dans la boîte de dialogue.

FICHIER DE PROPRIETES

Il est bien évident qu'il serait fastidieux d'entrer des données nouvelles chaque fois qu'une requête est effectuée. Les données sont rendues 'persistantes' grâce à un fichier de propriétés. Par défaut ce fichier est TreebolicSql.properties dans le dossier courant, bien qu'on puisse en désigner un autre sur la ligne de commande en ajoutant l'argument suivant:

sql=<chemin du fichier de propriétés>

Si l'utilisateur doit désigner ce fichier à l'exécution, on peut utiliser cette syntaxe spéciale sur le ligne de commande :

sql=query

Le fichier de propriétés doit contenir les informations suivantes :

driver=

est la classe dans l'archive Java du pilote qui fait office de pilote pour les librairies JDBC

url=

est l'URL  JDBC pour la base de données (peut inclure le serveur et son port). Noter que ':' doivent être échappés.

user=

est l'identification de l'utilisateur qui interroge la base.

passwd=

est le mot de passe de l'utilisateur

nodes_sql=

est la requête SQL qui décrit un ensemble de noeuds. Voir les informations attendues dans l' ensemble de noeuds résultat (Nodes ResultSet)

edges_sql=

est la requête SQL qui décrit un ensemble d'arcs. Voir les informations attendues dans l'ensemble d'arcs résultat (edges ResultSet)

settings_sql=

est la requête SQL qui décrit un ensemble de paramètres. Voir les informations attendues dans l'ensemble de paramètres résultat (settings ResultSet)

id_field=

est le nom du champ/colonne identifiant (ID) dans l' ensemble de noeuds résultat (Nodes ResultSet). Doit être consistant avec la requête SQL.

path_field=

est le nom du champ/colonne chemin (path) dans l' ensemble de noeuds résultat (Nodes ResultSet). Doit être consistant avec la requête SQL.

label_field=

est le nom du champ/colonne  étiquette (label) dans l' ensemble de noeuds résultat (Nodes ResultSet). Doit être consistant avec la requête SQL.

from_field=

est le nom du champ/colonne  ID du noeud source (from-node ID) dans l'ensemble d'arcs résultat (edges ResultSet). Doit être consistant avec la requête SQL.

to_field=

est le nom du champ/colonne  ID du noeud destination (to-node ID) dans l'ensemble d'arcs résultat (edges ResultSet). Doit être consistant avec la requête SQL.

 

driver0,driver1,..

destiné à alimenter le choix de pilotes dans le dialogue (facultatif)

url0,url1,..

destiné à alimenter le choix d'URL dans le dialogue (facultatif)

Exemple de fichier de propriétés (mySQL):

#TREEBOLIC-SQL
#Tue Jun 24 15:26:01 CEST 2003
driver=org.gjt.mm.mysql.Driver
url=jdbc\:mysql\://localhost\:3306/animaldom
user=sqlquerier
passwd=sqlquerier

id_field=id_node
label_field=label
path_field=path
to_field=id_to
from_field=id_from

nodes_sql=SELECT *, Nodes_EN.id_node AS label, _Images.src AS img FROM Nodes_EN LEFT JOIN _Images ON Nodes_EN.id_img\=_Images.id_img;
edges_sql=SELECT * FROM Edges;
settings_sql=SELECT *, _BackImages.src AS img, _NodesImages.src AS nodes_img FROM Settings LEFT JOIN _Images AS _BackImages ON Settings.id_img \= _BackImages.id_img LEFT JOIN _Images AS _NodesImages ON Settings.id_nodes_img \= _NodesImages.id_img LEFT JOIN _Orientations ON Settings.id_orientation \= _Orientations.id_orientation LEFT JOIN _FontFaces ON Settings.id_fontface \= _FontFaces.id_fontface WHERE Settings.id_settings \= 'DEFAULT';

driver0=sun.jdbc.odbc.JdbcOdbcDriver
driver1=org.gjt.mm.mysql.Driver
url0=jdbc\:odbc\:animaldom
url1=jdbc\:mysql\://localhost\:3306/animaldom
url2=jdbc\:odbc\:TREEBOLIC
url3=jdbc\:mysql\://localhost\:3306/TREEBOLIC

Exemple de fichier de propriétés (ODBC):

#TREEBOLIC-SQL
#Tue Jun 24 15:21:18 CEST 2003
driver=sun.jdbc.odbc.JdbcOdbcDriver
url=jdbc\:odbc\:animaldom
user=
passwd=

id_field=id_node
to_field=id_to
from_field=id_from
label_field=label
path_field=path

nodes_sql=SELECT *, [Nodes_FR].id_node, [Nodes_FR].id_node AS label, [_Images].src AS img FROM _Images RIGHT JOIN [Nodes_FR] ON [_Images].id_img\=[Nodes_FR].id_img;
edges_sql=SELECT * FROM Edges;
settings_sql=SELECT *, [_Images_Back].src AS img, [_Images_Nodes].src AS nodes_img FROM _Images AS _Images_Nodes RIGHT JOIN (_Orientations RIGHT JOIN (_Images AS _Images_Back RIGHT JOIN (_FontFaces RIGHT JOIN Settings ON [_FontFaces].id_fontface \= Settings.id_fontface) ON [_Images_Back].id_img \= Settings.id_img) ON [_Orientations].id_orientation \= Settings.id_orientation) ON [_Images_Nodes].id_img \= Settings.id_nodes_img WHERE Settings.id_settings\='DEFAULT';

driver0=sun.jdbc.odbc.JdbcOdbcDriver
driver1=org.gjt.mm.mysql.Driver
url0=jdbc\:odbc\:animaldom
url1=jdbc\:mysql\://localhost\:3306/animaldom
url2=jdbc\:odbc\:treebolic
url3=jdbc\:mysql\://localhost\:3306/treebolic