Amalan Pengumpulan Sambungan JDBC MySql untuk Mengelak Kolam Sambungan yang Habis
Dalam aplikasi web Java, pengumpulan sambungan digunakan untuk mengurus sambungan pangkalan data dengan cekap dan mencegah penggunaan sumber yang berlebihan. Walau bagaimanapun, jika tidak dilaksanakan dengan betul, kebocoran sambungan boleh membawa kepada kumpulan sambungan yang kehabisan dan kegagalan aplikasi.
Mari kita pertimbangkan senario biasa di mana aplikasi web Java-JSF menggunakan kumpulan sambungan. Untuk mendapatkan sambungan, aplikasi mencipta kacang berskop aplikasi yang menggunakan Sumber Data:
public class DatabaseBean { private DataSource myDataSource; }
Kacang ini menyediakan sambungan kepada kacang lain yang perlu berinteraksi dengan pangkalan data:
public Connection getConnection() { Connection connection = myDataSource.getConnection(); return connection; }
Walaupun pendekatan ini memastikan sambungan diperoleh daripada kolam, pendekatan ini memperkenalkan isu yang berpotensi jika sambungan tidak ditutup dengan betul. Apabila sambungan diperoleh, ia dialih keluar dari kolam dan ditandakan sebagai "sedang digunakan." Jika sambungan tidak ditutup, ia akan kekal digunakan selama-lamanya, menghalang bahagian lain aplikasi daripada mengakses pangkalan data.
Oleh itu, apabila navigasi berlaku melalui aplikasi, kumpulan sambungan menjadi letih dan sebarang percubaan berikutnya untuk mengakses pangkalan data akan gagal. Untuk mengelakkan isu ini, adalah penting untuk memastikan bahawa semua sambungan ditutup secara eksplisit dalam blok cuba-dengan-sumber atau blok cuba-akhirnya.
public void create(Entity entity) throws SQLException { try ( Connection connection = dataSource.getConnection(); PreparedStatement statement = connection.prepareStatement(SQL_CREATE); ) { // ... } }
public void create(Entity entity) throws SQLException { Connection connection = null; PreparedStatement statement = null; try { // ... } finally { if (statement != null) statement.close(); if (connection != null) connection.close(); } }
Dengan menutup sambungan dengan betul, aplikasi memastikan ia dikembalikan ke kolam dan tersedia untuk digunakan semula. Amalan ini penting untuk mengekalkan integriti dan kecekapan kumpulan sambungan.
Atas ialah kandungan terperinci Bagaimana untuk Mencegah Kolam Sambungan yang Habis dalam Aplikasi Java-JSF Menggunakan JDBC dan MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!