Както е описано в MySQL документация
трябва да използвате Connection.setCatalog()
за да преминете към друга база данни. Също така изрично се казва, че не трябва дане изпълнете USE <databasename>
за превключване.
Причината за това предупреждение е, че JDBC е общ интерфейс към бази данни и следователно предоставя методи за най-често срещаните задачи, включително превключване на catalogs
(или databases
както са в MySQL). Спецификацията на JDBC/javadoc също така изрично казва, че хората трябва да използват API върху специфични за базата данни команди (ако и двете са налични). Има няколко причини за това:1) насърчава независимия от базата данни код и 2) драйверът може да прави допълнителни неща вътрешно в отговор на един от методите на API. Използването на специфични за базата данни команди може да доведе до лошо поведение на драйвера, тъй като вътрешното му състояние не съответства на състоянието на базата данни.
Извикване към setCatalog(String)
няма да засегне съществуващите изрази, както е посочено в документацията на JDBC API: