Zoals beschreven in de MySQL documentatie
je moet Connection.setCatalog()
. gebruiken om over te schakelen naar een andere database. Er staat ook expliciet dat je niet . moet voer een USE <databasename>
uit om over te schakelen.
De reden voor deze waarschuwing is dat JDBC een generieke interface voor databases is en daarom methoden biedt voor de meest voorkomende taken, waaronder het wisselen van catalogs
(of databases
zoals ze zijn in MySQL). De JDBC-specificatie/javadoc zegt ook expliciet dat mensen de API moeten gebruiken boven databasespecifieke opdrachten (als beide beschikbaar zijn). Hier zijn verschillende redenen voor:1) het promoot database-onafhankelijke code, en 2) het stuurprogramma kan intern aanvullende dingen doen als reactie op een van de API-methoden. Het gebruik van databasespecifieke commando's kan ertoe leiden dat het stuurprogramma zich misdraagt omdat de interne status niet overeenkomt met de databasestatus.
Een oproep aan setCatalog(String)
heeft geen invloed op bestaande instructies, zoals gespecificeerd in de JDBC API-documentatie: