Apache Derby - Check-Datenbank Bereits Erstellt?
Apache Derby verwenden mit Java (J2ME, aber ich glaube nicht, dass das einen Unterschied macht) gibt es eine Möglichkeit zu überprüfen, ob eine Datenbank bereits vorhanden und enthält eine Tabelle?
- Siehe auch stackoverflow.com/questions/584497/...
Du musst angemeldet sein, um einen Kommentar abzugeben.
Weiß ich nichts, außer paar umgehen, im Gegensatz zu MySQL, wo wir haben, dass die Anlage, WENN VORHANDEN.
Was Sie tun, ist, versuchen, eine Verbindung zu der Datenbank, wenn nicht könnte es wahrscheinlich nicht dort. Und nach einer erfolgreichen Verbindung können Sie ganz einfach wählen, wie Sie SELECT count(*) FROM TABLE_NAME, um zu wissen, ob die Tabelle existiert oder nicht. Sie wäre abhängig von der Ausnahme. Sogar in einem offiziellen Beispiel aus der Sonne, die ich gesehen habe, die ähnlich umgehen.
In Oracle, die wir haben, dictionary-Tabellen, um wissen über die Objekte der Datenbank. Ich bezweifle, ob wir so etwas wie im Derby.
[Bearbeitet]
Gut, fand ich, dass es einen Weg gibt, zu wissen, ob die Tabelle vorhanden ist. Versuchen Sie, SELECT tablename 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 etwas ähnliches habe ich oben erklärt.
Adeel, können Sie auch - Verbindung.getMetaData, um wieder eine DatabaseMetaData Objekt und verwenden Sie dann getTables, sobald Sie die Verbindung zur Datenbank natürlich. Dies hat den Vorteil der Arbeit für jede Datenbank mit einem JDBC-Treiber es Wert Salz.
Zur überprüfung, ob die Datenbank vorhanden ist, wenn Sie mit Derby in den eingebetteten Weg, oder der server auf der selben Maschine, könnte man überprüfen, ob der Ordner für die Datenbank vorhanden ist. Ist ein bisschen notdürftigem obwohl. Ich würde tun, was Adeel vermuten lässt, und versuchen, eine Verbindung, die exception zu fangen, wenn es nicht da ist.
Ich würde vorschlagen, immer die DatabaseMetaData-Objekt, dann mit der getTables(null, null, null, new String[]{"TABLE"}) - Methode von es gibt eine Ergebnismenge. Verwenden Sie die Methode next() des ResultSet, das gibt einen booleschen Wert zurück, um zu testen, ob alle Tabellen vorhanden sind. Wenn es tests wahr, Sie haben die Tabellen in der Existenz. False, und die Datenbank ist leer.