sql >> Database >  >> RDS >> Mysql

Java, hoe verander ik de huidige database in een andere?

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:



  1. PDO Meerdere zoekopdrachten:transactie vastleggen en terugdraaien

  2. Een verhaal van twee clusterfactoren

  3. Kan MySQL niet starten, poort 3306 bezet

  4. Omgaan met MySQL langlopende zoekopdrachten