Artikel ini menjelaskan cara memperpanjang hibernate menggunakan kumpulan koneksi basis data khusus. Bagikan untuk referensi Anda, sebagai berikut:
Dalam proses Hibernate, kami sering menghadapi masalah ini: Produk kami yang sudah jadi sudah menggunakan kumpulan koneksi database kami sendiri. Jika kita menggunakan Hibernate, kita juga harus mengkonfigurasi informasi koneksi basis data dalam konfigurasi hibernate. Ini membutuhkan pemeliharaan informasi koneksi basis data di dua tempat, yang terasa cukup canggung untuk dipertahankan.
Karena kami tidak bergabung dengan Hibernate pada awal pengembangan produk, tidak tepat untuk membiarkan produk secara langsung menggunakan kumpulan koneksi Hibernate, jadi kami harus membiarkan Hibernate menggunakan kumpulan koneksi produk sendiri. Untungnya, Hibernate telah menyediakan antarmuka ekstensi untuk kumpulan koneksi: ConnectionProvider.
Hibernate sendiri menggunakan antarmuka ConnectionProvider untuk mengelola koneksi basis data. Misalnya, C3P0ConnectionProvider, ProxoolConnectionProvider, dll., Kami menulis kelas yang mengimplementasikan antarmuka ConnectionProvider. Dalam file konfigurasi Hibernate, tidak apa -apa untuk mengubah parameter yang relevan ke kelas ini. Kode yang relevan adalah sebagai berikut:
Kode berikut digunakan untuk menggantikan konfigurasi informasi koneksi basis data sebelumnya di hibernate.cfg.xml:
<!-Kustom-Kolam koneksi menggunakan produk NMS-> <name properti = "hibernate.connection.provider_class"> com.shine.sourcedesk.jbpm.nmsconnectionProvider </propert>
Kelas yang menerapkan antarmuka ConnectionManager:
Paket com.shine.sourcedesk.jbpm; impor java.sql.connection; impor java.sql.sqlexception; impor java.util.properties; impor org.hibernate.hibernateException; Impor org.hibernate.connection.connectionProvider; com.shine-shine-shine.conndon.connection.connection.connection; Customize Hibernate connection pool, let Hibernate use the product's ConnectionManager * @author JiangKunpeng * */public class NmsConnectionProvider implements ConnectionProvider{@Overridepublic void close() throws HibernateException {}@Overridepublic void closeConnection(Connection connection) throws SQLException { //Close the connection ConnectionManager.close (koneksi);}@overridepublic void configure (properti properti) melempar HibernateException {} @Overridepublic Connection getConnection () SQLException {// Gunakan kumpulan basis data produk untuk mendapatkan koneksi koneksi ConnectionManager.getconnection ();}@{oPrigsePublic untuk mendapatkan koneksi ConnectionManager.getConnection ();};}@{{{{{{{{{{{{{{); PALSU;}Saya berharap deskripsi dalam artikel ini akan membantu pemrograman Java semua orang berdasarkan kerangka hibernasi.