Mysql
 sql >> Base de données >  >> RDS >> Mysql

Java, comment changer la base de données actuelle à une autre ?

Comme décrit dans MySQL documents vous devez utiliser Connection.setCatalog() pour passer à une autre base de données. Il dit aussi explicitement que vous ne devriez pas exécuter un USE <databasename> pour basculer.

La raison de cet avertissement est que JDBC est une interface générique pour les bases de données et fournit donc des méthodes pour la plupart des tâches courantes, y compris le changement de catalogs (ou databases comme ils le sont dans MySQL). La spécification JDBC/javadoc indique également explicitement que les utilisateurs doivent utiliser l'API plutôt que des commandes spécifiques à la base de données (si les deux sont disponibles). Il y a plusieurs raisons à cela :1) il promeut un code indépendant de la base de données, et 2) le pilote peut faire des choses supplémentaires en interne en réponse à l'une des méthodes de l'API. L'utilisation de commandes spécifiques à la base de données peut entraîner un mauvais comportement du pilote car son état interne ne correspond pas à l'état de la base de données.

Un appel à setCatalog(String) n'affectera pas les instructions existantes, comme spécifié dans la documentation de l'API JDBC :