Rumah >pangkalan data >tutorial mysql >Patutkah Saya Tutup Sambungan JDBC Terkumpul?

Patutkah Saya Tutup Sambungan JDBC Terkumpul?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-12-03 22:19:14941semak imbas

Should I Close Pooled JDBC Connections?

Menutup Sambungan JDBC dalam Kolam

Soalan: Patutkah sambungan JDBC ditutup apabila menggunakan kumpulan sambungan? Jika ya, bukankah ia mengalahkan tujuan pengumpulan?

Jawapan: Ya, sambungan terkumpul harus ditutup. Menutup sambungan terkumpul melepaskan sambungan asas kembali ke kolam.

Kolam sambungan menjejak sambungan mana yang sedang digunakan dan mana yang percuma. Apabila sambungan ditutup, kolam mengenalinya sebagai tersedia untuk digunakan semula.

Soalan: Adakah kaedah berikut sesuai untuk mendapatkan sambungan daripada kolam atau DriverManager?

public Connection getConnection(boolean pooledConnection) throws SQLException {
    if (pooledConnection) {
        if (ds == null) {
            try {
                ds = (DataSource) new InitialContext().lookup("java:comp/env/jdbc/NamedInTomcat");
                return ds.getConnection();
            } catch (NamingException e) {
                e.printStackTrace();
            }
        }
        return (ds == null) ? getConnection(false) : ds.getConnection();
    }
    return DriverManager.getConnection("jdbc:mysql://..." + dbName, uName, pWord);
}

Jawapan: Kod tidak disyorkan. DataSource harus dimulakan sekali semasa aplikasi dimulakan dan bukannya dalam kaedah. Selain itu, penyegerakan dan semakan nol tidak diperlukan. Kaedah ini hanya perlu mencari DataSource sekali dan mengembalikan sambungan daripadanya secara konsisten.

Pertimbangan Tambahan:

  • Sentiasa tutup sumber JDBC dalam susunan terbalik dalam percubaan -penyataan dengan sumber atau dalam blok akhirnya.
  • Elakkan menggunakan DriverManager untuk mewujudkan sambungan secara manual jika anda menggunakan kolam sambungan.

Atas ialah kandungan terperinci Patutkah Saya Tutup Sambungan JDBC Terkumpul?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn