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

Apakah saya menggunakan Java PooledConnections dengan benar?

Ini bukan cara yang benar. Sumber data perlu dikelola oleh wadah apa pun tempat Anda menjalankan aplikasi. MysqlConnectionPoolDataSource adalah tidak kolam koneksi. Ini hanyalah implementasi nyata dari javax.sql.DataSource antarmuka. Anda biasanya mendefinisikannya dalam konteks JNDI dan mendapatkannya dari sana. Juga MySQL sendiri menyatakan semuanya secara eksplisit di dokumentasi mereka .

Sekarang, cara menggunakannya tergantung pada tujuan aplikasi. Jika ini adalah aplikasi web, maka Anda perlu merujuk dokumentasi sumber daya JNDI dari servletcontainer/appserver yang bersangkutan. Jika misalnya Tomcat, maka Anda dapat menemukannya di sini . Jika Anda menjalankan aplikasi klien --yang saya akan sangat mempertanyakan nilai kumpulan koneksi--, maka Anda perlu mencari kerangka kerja penyatuan koneksi yang dapat menggunakan sumber data kumpulan koneksi yang disediakan MySQL, seperti C3P0 .

Masalah lain dengan kode yang Anda posting adalah bahwa PooledConnection#getConnection() akan mengembalikan yang mendasari koneksi yang dengan demikian tidak koneksi yang dikumpulkan. Memanggil dekat tidak akan mengembalikan koneksi ke kolam, tetapi hanya benar-benar menutupnya. Kolam harus membuat koneksi baru setiap saat.

Kemudian cerita threadsafety, itu tergantung pada nyata kerangka kerja penyatuan koneksi yang dimaksud. C3P0 telah membuktikan ketangguhannya selama bertahun-tahun, Anda tidak perlu khawatir selama Anda menulis kode JDBC sesuai dengan idiom standar, yaitu gunakan hanya antarmuka JDBC dan dapatkan dan tutup semua sumber daya (Connection , Statement dan ResultSet ) dalam cakupan sesingkat mungkin.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. opencart — Bagaimana cara menampilkan modul secara manual di dalam file templat?

  2. GALAT 1062 (23000):Entri duplikat '2147483647' untuk kunci 'PRIMARY'

  3. Cara menghapus baris duplikat dari tabel MySQL

  4. MySQL:Bagaimana saya bisa mendapatkan stempel waktu penyisipan terakhir ke database

  5. hapus informasi dari tabel mysql saat pengguna menutup Browsernya