Conforme descrito no MySQL documentação você precisa usar
Connection.setCatalog()
para mudar para outro banco de dados. Também diz explicitamente que você não execute um USE <databasename>
para mudar. A razão para este aviso é que o JDBC é uma interface genérica para bancos de dados e, portanto, fornece métodos para as tarefas mais comuns, incluindo alternar
catalogs
(ou databases
como eles estão no MySQL). A especificação JDBC/javadoc também diz explicitamente que as pessoas devem usar a API sobre comandos específicos do banco de dados (se ambos estiverem disponíveis). Há vários motivos para isso:1) ele promove código independente do banco de dados e 2) o driver pode fazer coisas adicionais internamente em resposta a um dos métodos da API. O uso de comandos específicos do banco de dados pode fazer com que o driver se comporte mal porque seu estado interno não corresponde ao estado do banco de dados. Uma chamada para
setCatalog(String)
não afetará as instruções existentes, conforme especificado na documentação da API JDBC: