Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Java, wie ändere ich die aktuelle Datenbank in eine andere?

Wie in MySQL beschrieben Dokumentation Sie müssen Connection.setCatalog() verwenden zu einer anderen Datenbank wechseln. Es sagt auch ausdrücklich, dass Sie nicht sollten Führen Sie ein USE <databasename> aus zu wechseln.

Der Grund für diese Warnung ist, dass JDBC eine generische Schnittstelle zu Datenbanken ist und daher Methoden für die häufigsten Aufgaben bereitstellt, einschließlich des Wechselns von catalogs (oder databases wie sie in MySQL sind). Die JDBC-Spezifikation/Javadoc besagt auch ausdrücklich, dass Benutzer die API über datenbankspezifische Befehle verwenden sollten (falls beide verfügbar sind). Dafür gibt es mehrere Gründe:1) es fördert datenbankunabhängigen Code und 2) der Treiber kann als Reaktion auf eine der API-Methoden intern zusätzliche Dinge tun. Die Verwendung von datenbankspezifischen Befehlen kann zu Fehlverhalten des Treibers führen, da sein interner Status nicht mit dem Datenbankstatus übereinstimmt.

Ein Aufruf von setCatalog(String) wirkt sich nicht auf vorhandene Anweisungen aus, wie in der JDBC-API-Dokumentation angegeben: