Mysql
 sql >> Database >  >> RDS >> Mysql

Java, come cambiare il database corrente in un altro?

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: