Jak opisano w MySQL dokumentacja
musisz użyć Connection.setCatalog()
aby przejść do innej bazy danych. Mówi również wyraźnie, że nie powinieneś nie wykonaj USE <databasename>
aby się przełączyć.
Powodem tego ostrzeżenia jest to, że JDBC jest ogólnym interfejsem do baz danych i dlatego zapewnia metody do większości typowych zadań, w tym przełączania catalogs
(lub databases
tak jak w MySQL). Specyfikacja JDBC/javadoc również wyraźnie mówi, że ludzie powinni używać API zamiast poleceń specyficznych dla bazy danych (jeśli oba są dostępne). Istnieje kilka powodów takiego stanu rzeczy:1) promuje kod niezależny od bazy danych i 2) sterownik może wykonać dodatkowe czynności wewnętrznie w odpowiedzi na jedną z metod API. Używanie poleceń specyficznych dla bazy danych może spowodować nieprawidłowe działanie sterownika, ponieważ jego stan wewnętrzny nie jest zgodny ze stanem bazy danych.
Wywołanie setCatalog(String)
nie wpłynie na istniejące instrukcje, jak określono w dokumentacji JDBC API: