Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Menutup Koneksi JDBC di Pool

Saat menggunakan Connection Pool, haruskah seseorang menutup Connection di akhir? Jika demikian, bukankah tujuan pooling hilang? Dan jika tidak, bagaimana DataSource mengetahui kapan instance tertentu dari Connection dibebaskan dan dapat digunakan kembali? Saya sedikit bingung dalam hal ini, setiap petunjuk dihargai.

Ya, tentu Anda juga harus menutup pooled connection. Ini sebenarnya pembungkus koneksi yang sebenarnya. Ini akan di bawah selimut melepaskan koneksi yang sebenarnya kembali ke kolam. Selanjutnya terserah pada pool untuk memutuskan apakah koneksi yang sebenarnya akan benar-benar ditutup atau digunakan kembali untuk getConnection() baru panggilan. Jadi, terlepas dari apakah Anda menggunakan kumpulan koneksi atau tidak, Anda harus selalu tutup semua sumber daya JDBC dalam urutan terbalik di finally blok try blokir tempat Anda mendapatkannya. Di Java 7 ini dapat lebih disederhanakan dengan menggunakan try-with-resources pernyataan.

Apakah metode berikut mendekati standar? Sepertinya upaya untuk mendapatkan koneksi dari kumpulan, dan jika DataSource tidak dapat dibuat, gunakan DriverManager kuno. Kami bahkan tidak yakin bagian mana yang dieksekusi saat runtime. Mengulangi pertanyaan di atas, haruskah seseorang menutup Koneksi yang keluar dari metode seperti itu?

Contohnya cukup menakutkan. Anda hanya perlu mencari/menginisialisasi DataSource hanya sekali selama startup aplikasi di beberapa konstruktor / inisialisasi kelas konfigurasi DB seluruh aplikasi. Kemudian panggil saja getConnection() pada satu dan sumber data yang sama sepanjang sisa masa pakai aplikasi. Tidak perlu sinkronisasi atau nullchecks.

Lihat juga:



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Apa yang setara dengan kueri MySQL dari PHP strip_tags?

  2. Cara Menghitung Pengguna Aktif Bulanan (MAU) di MySQL

  3. Cara mengosongkan database MySQL

  4. Praktik Terbaik untuk Membuat Indeks di Tabel MySQL Anda – Rolling Index Builds

  5. MyISAM versus InnoDB