Cet article décrit comment étendre l'hibernate à l'aide d'un pool de connexion de base de données personnalisé. Partagez-le pour votre référence, comme suit:
Dans le processus d'hibernate, nous rencontrons souvent ce problème: nos produits prêts à l'emploi utilisent déjà notre propre pool de connexions de base de données. Si nous utilisons Hibernate, nous devons également configurer les informations de connexion de la base de données dans la configuration Hibernate. Cela nécessite de maintenir les informations de connexion de la base de données à deux endroits, ce qui semble assez gênant à maintenir.
Étant donné que nous n'avons pas rejoint Hibernate au début du développement du produit, il n'est pas approprié de laisser le produit utiliser directement le pool de connexions d'Hibernate, nous avons donc dû laisser Hibernate utiliser le pool de connexion propre du produit. Heureusement, HiberNate a fourni une interface d'extension pour le pool de connexion: ConnectionProvider.
HiberNate lui-même utilise l'interface ConnectionProvider pour gérer les connexions de la base de données. Par exemple, son propre C3P0ConnectionProvider, ProxoolConnectionProvider, etc., nous écrivons une classe qui implémente l'interface ConnectionProvider. Dans le fichier de configuration Hibernate, il est normal de modifier les paramètres pertinents dans cette classe. Le code pertinent est le suivant:
Le code suivant est utilisé pour remplacer la configuration des informations de connexion de la base de données précédentes dans hibernate.cfg.xml:
<! - Pool de connexion personnalisé à l'aide de produits NMS -> <propriété name = "hibernate.connection.provider_class"> com.shine.sourcedesk.jbpm.nmsconnectionprovider </ / propriété>
Classes qui implémentent l'interface ConnectionManager:
package com.shine.sourcedesk.jbpm; import java.sql.connection; import java.sql.sqlexception; import java.util.properties; import org.hibernate.hibernateException; import org.hibernate.connection.connectionprovider; importer com.shine.frameworkwork.jdbc.connexion; * Personnalisez le pool de connexion HiberNate, laissez HiberNate utiliser la connexion du produit * @author jiangkunPeng * * / public class nmsconnectionProvider implémente connectionprovider {@OverRiDePublic void closeconnection (connexion connection) ConnectionManager.Close (connexion);} @ OverRidepublic void Configure (Properties Properties) lève HiberNateException {} @OverRidePublic Connection GetConnection () lève SQELLEXception {// Utilisez le pool de données du produit du produit pour obtenir la connexion ConnectionManager.getConnection ();} @ Overdepubl FAUX;}J'espère que la description de cet article sera utile à la programmation Java de chacun basée sur le cadre d'hibernate.