2010-05-31 3 views
2

J'ai un programme de bureau qui utilise un mécanisme de base de données intégrée. Pour la première fois, un utilisateur va exécuter un programme, il doit créer une base de données. Donc, la prochaine fois qu'il y a une base de données et qu'il n'y a pas besoin de la créer.S'il y a une base de données nécessaire

Comment vérifier s'il existe une base de données et la créer si nécessaire?

+2

Quelle base de données intégrée allez-vous utiliser? –

+4

@Dmitry accepter certaines de vos réponses qui amélioreront vos chances d'obtenir une réponse à votre question – ant

+0

JavaDB (Derby) =) – Dmitry

Répondre

5

Utilisez l'attribut create=true dans l'URL JDBC, comme ceci:

Connection conn = DriverManager.getConnection("jdbc:derby:sampleDB;create=true"); 

Voir la Apache Derby Reference Manual:

create = true attribut

Crée la base de données standard spécifié dans la URL de connexion à la base de données Derby système, puis se connecte à lui. Si la base de données ne peut pas être créée, l'erreur apparaît dans le journal des erreurs et la tentative de connexion échoue avec une exception SQLException indiquant que la base de données est introuvable.

Si la base de données existe déjà, crée une connexion à la base de données existante et un SQLWarning est émis.

Vous devez probablement attraper le SQLWarning (ceci est une exception) mais vous pouvez l'ignorer en toute sécurité.

+0

Merci je vais le tester – Dmitry

1

Je suis en train de créer la partie base de données du script d'installation afin que vous puissiez toujours compter sur elle.

Ok, mais comment le faire pour que ce soit fonctionne sur n'importe quelle plate-forme?

Si vous utilisez Derby et Java, cela fonctionnera sur toutes les plateformes. Il vous suffira d'écrire différents scripts d'installation: .bat ou .cmd pour Windows, .sh pour Linux et Mac. Pas trop fatigant.

Peut être il y a un moyen de vérifier s'il y a un et si il n'y a pas de créer ce?

Essayez d'établir une connexion JDBC. Si cela échoue, exécutez le DDL SQL.

+0

Ok, mais comment le faire pour qu'il fonctionne sur tout Plate-forme? Peut-être existe-t-il un moyen de vérifier s'il y en a un et s'il n'y a pas de le créer? – Dmitry

+0

vous ne pouvez pas toujours compter sur l'être là. Que faire si l'utilisateur supprime manuellement la base de données après l'installation? Ensuite, vous revenez au problème original. –

Questions connexes