Mit Apache Derby mit Java (J2ME, aber ich glaube nicht, dass das einen Unterschied macht) gibt es eine Möglichkeit zu überprüfen, ob eine Datenbank bereits existiert und eine Tabelle enthält?Apache Derby - Check-Datenbank bereits erstellt?
Antwort
Ich kenne keine, außer wenigen umgehen, im Gegensatz zu MySQL, wo wir diese Möglichkeit von IF EXIST haben.
Was Sie tun, ist, versuchen, eine Verbindung mit der Datenbank, wenn nicht könnte es wahrscheinlich ist nicht dort. Nach einer erfolgreichen Verbindung können Sie eine einfache Auswahl treffen, z. B. SELECT count (*) FROM TABLE_NAME, um zu ermitteln, ob die Tabelle vorhanden ist oder nicht. Sie würden von der Ausnahme abhängig sein. Selbst in einem offiziellen Beispiel von Sun habe ich ähnliche Arbeiten gesehen.
In Oracle haben wir Dictionary-Tabellen, um über die Datenbankobjekte zu wissen. Ich bezweifle, dass wir in Derby so etwas haben.
[Edited]
Nun, fand ich, dass es eine Möglichkeit zu wissen, ob die Tabelle vorhanden sind. Versuchen Sie, SELECT Tabellenname FROM SYSTABLES. Es ist für die Überprüfung der Existenz einer Tabelle, für die Überprüfung der Datenbank müssen Sie möglicherweise ähnliche Dinge tun, ich oben erläutert.
Adeel, könnten Sie auch Connection.getMetaData verwenden, um ein DatabaseMetaData Objekt zurück, dann die getTables verwenden, sobald Sie die Verbindung zur Datenbank natürlich haben. Dies hat den Vorteil, dass Sie für jede Datenbank mit einem JDBC-Treiber arbeiten können, der sich lohnt.
Um zu überprüfen, ob die Datenbank existiert, wenn Sie Derby auf die eingebettete Weise verwenden oder der Server sich auf demselben Computer befindet, könnten Sie überprüfen, ob der Ordner für die Datenbank existiert. Ist aber ein bisschen kludgy. Ich würde tun, was Adeel vorschlägt, und versuchen, eine Verbindung herzustellen, indem ich die Ausnahme abfange, wenn sie nicht da ist.
Ich würde vorschlagen, das DatabaseMetaData-Objekt abzurufen und dann die Methode getTables (null, null, null, new String [] {"TABLE"}) zu verwenden, die ein ResultSet zurückgibt. Verwenden Sie die next() - Methode des ResultSet, die einen booleschen Wert zurückgibt, um zu testen, ob Tabellen vorhanden sind. Wenn es wahr ist, haben Sie Tabellen vorhanden. Falsch und die Datenbank ist leer.
- 1. Seitennummerierung mit Apache Derby
- 2. Apache Derby: Erstellen SQL Dump mit Daten
- 3. Apache Derby & Java - Optimierung von Einfügungen
- 4. Deklaration Fremdschlüssel in Apache Derby-Datenbank
- 5. Netbeans und Apache Derby Embedded + Frühling
- 6. Java DB/Apache Derby mit Android
- 7. In-Memory-Embedded Server Apache Derby mit
- 8. Ersetzen Sie die Zeichenfolge in Apache Derby
- 9. Derby-Tabelle, die nicht erstellt wird
- 10. Derby-Dialekt für überwintern
- 11. Datum in Millisekunden seit Epoche mit Apache Derby konvertieren
- 12. Kann ich MERGE INTO in Apache Derby Version 10.11 verwenden?
- 13. Derby verbinden Fehler
- 14. Embedded Derby mehrere Verbindungen Problem
- 15. Derby - Einschränkungen
- 16. Apache Karaf root-Instanz läuft bereits
- 17. Hadoop-Multiple wird bereits erstellt Ausnahme
- 18. mysql dump in derby
- 19. Derby: CONCAT entspricht
- 20. jpa-derby Boolesch Merge
- 21. Derby/JavaDB vs SQLiteJDBC
- 22. bedingte Anweisungen in Derby
- 23. Schreiben Update-Anweisung Derby
- 24. Derby db Konnektivitätsprobleme
- 25. Automatisch JavaDB (Derby) auf GlassFish starten
- 26. Apache Spark: wie man einen Zähler erstellt
- 27. Unterstützt Derby Tabellen- und Spaltenkommentare?
- 28. Derby in Eclipse-Projekte integrieren?
- 29. Derby Database - Abstraktes Schema unbekannt
- 30. Derby Syntaxfehler: EOF gefunden Nächste Wertsequenz
Siehe auch http://stackoverflow.com/questions/584497/apache-derby-check-database-already-created – Raedwald