Seperti yang dijelaskan dalam MySQL dokumentasi
anda perlu menggunakan Connection.setCatalog()
untuk beralih ke database lain. Itu juga secara eksplisit mengatakan bahwa Anda harus tidak jalankan USE <databasename>
untuk beralih.
Alasan untuk peringatan ini adalah bahwa JDBC adalah antarmuka generik ke database dan karenanya menyediakan metode untuk sebagian besar tugas umum, termasuk beralih catalogs
(atau databases
seperti yang ada di MySQL). Spesifikasi JDBC/javadoc juga secara eksplisit mengatakan bahwa orang harus menggunakan API melalui perintah khusus basis data (jika keduanya tersedia). Ada beberapa alasan untuk ini:1) ia mempromosikan kode yang tidak bergantung pada basis data, dan 2) pengemudi mungkin melakukan hal-hal tambahan secara internal sebagai tanggapan terhadap salah satu metode API. Menggunakan perintah khusus database dapat menyebabkan driver berperilaku tidak semestinya karena status internalnya tidak cocok dengan status database.
Panggilan ke setCatalog(String)
tidak akan memengaruhi pernyataan yang ada, sebagaimana ditentukan dalam dokumentasi API JDBC: