OVH Cloud OVH Cloud

Creation de bases avec JDBC

1 réponse
Avatar
trickyfox
Salut a tous!

J'ai un petit probleme concernant JDBC. Voila j'ai realise un
programme qui me permets de connecter a une base de donnees X. Le code
traditionnel marche, mais ce que je cherche a faire en plus est la
chose suivante:

Au lancement du programme, ce dernier doit verifier s'il existe deja
une base de donnees qui porte le nom X. S'il ne trouve pas cette
derniere alors il la cree.

Comment realiser cette creation de bases avec JDBC?

Merci d'avance pour vos reponses...

1 réponse

Avatar
Yves Martin
writes:

Au lancement du programme, ce dernier doit verifier s'il existe deja
une base de donnees qui porte le nom X. S'il ne trouve pas cette
derniere alors il la cree.

Comment realiser cette creation de bases avec JDBC?


Tu peux simplement exécuter la requête SQL spécifique à ton serveur de base
pour créer une nouvelle DB, par exemple 'create database DB' pour PostgreSQL.

Mais il y a toujours un problème de poule et d'oeuf. Pour exécuter cette
requête, il faut être connecté - et pour être connecté, il faut fournir une
base qui existe dans l'URL JDBC ! Sans parler du fait que l'utilisateur avec
lequel tu te connectes doit avoir les droits de création de DB, de table, et
pourquoi pas d'utilisateurs...

En ce qui concerne la détection de la DB, ce n'est pas évident non plus car
elle est en général dans l'URL de connection. Il te faut donc être capable
d'intercepter la SQLException qui t'indique si la base n'existe
pas. (Evidemment les autres erreurs doivent être traitées: serveur off,
user/password invalide...)

En conclusion, pour régler ton problème, il faudrait connaître un
user/password et une base qui existe "toujours" sur le serveur. Si la
tentative de connection avec la base DB échoue, il faut se connecter avec cet
utilisateur administrateur et cette base (une base de test par exemple) pour
créer la base DB, créer les tables et autres objets, créer un utilisateur
restreint et enfin se re-connecter avec la nouvelle DB et le nouvel
utilisateur.
[ la création d'un utilisateur restreint pour éviter d'utiliser l'utilisateur
omnipotent n'est pas un luxe ! ]

Pas simple du tout, et je ne suis pas sûr que ce mécanisme de bootstrap vaille
vraiment le coup (temps de développement / temps d'admin).
A+
--
Yves Martin