Come descritto in MySQL documentazione
devi usare Connection.setCatalog()
per passare a un altro database. Dice anche esplicitamente che dovresti non eseguire un USE <databasename>
per cambiare.
Il motivo di questo avviso è che JDBC è un'interfaccia generica per i database e fornisce quindi metodi per le attività più comuni, incluso il cambio di catalogs
(o databases
come sono in MySQL). La specifica JDBC/javadoc dice anche esplicitamente che le persone dovrebbero usare l'API su comandi specifici del database (se entrambi sono disponibili). Ci sono diversi motivi per questo:1) promuove il codice indipendente dal database e 2) il driver potrebbe eseguire operazioni aggiuntive internamente in risposta a uno dei metodi API. L'utilizzo di comandi specifici del database potrebbe causare un comportamento anomalo del driver perché il suo stato interno non corrisponde allo stato del database.
Una chiamata a setCatalog(String)
non influirà sulle istruzioni esistenti, come specificato nella documentazione dell'API JDBC: