Este artículo describe cómo extender Hibernate utilizando un grupo de conexión de base de datos personalizado. Compártelo para su referencia, como sigue:
En el proceso de Hibernate, a menudo encontramos este problema: nuestros productos listos ya usan nuestro propio grupo de conexión de base de datos. Si usamos Hibernate, también debemos configurar la información de conexión de la base de datos en la configuración de Hibernate. Esto requiere mantener la información de conexión de la base de datos en dos lugares, lo que se siente bastante incómodo de mantener.
Como no nos unimos a Hibernate al comienzo del desarrollo del producto, no es apropiado dejar que el producto use directamente el grupo de conexión de Hibernate, por lo que tuvimos que permitir que Hibernate usara el grupo de conexión del producto. Afortunadamente, Hibernate ha proporcionado una interfaz de extensión para el grupo de conexión: ConnectionProvider.
Hibernate en sí utiliza la interfaz ConnectionProvider para administrar conexiones de base de datos. Por ejemplo, su propio C3P0ConnectionProvider, ProxoolConnectionProvider, etc., escribimos una clase que implementa la interfaz ConnectionProvider. En el archivo de configuración de Hibernate, está bien cambiar los parámetros relevantes a esta clase. El código relevante es el siguiente:
El siguiente código se utiliza para reemplazar la configuración de información de conexión de base de datos anterior en hibernate.cfg.xml:
<
Clases que implementan la interfaz ConnectionManager:
paquete 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; import Com.Shine.frame.jdbc.connectionManTerm. Personalizar el grupo de conexión de Hibernate, permitir que Hibernate use el ConnectionManager del producto * @author Jiangkunpeng * */public class nmSconnectionProvider implementa ConnectionProvider {@OverridePublic Void Close () lanza HibernateException {} @OverridePublic Void ClosEconnection (Connection Connection) lanza SQLEXCECTCECCION ConnectionManager.Close (conexión);}@overridePublic void configure (propiedades propiedades) lanza HibernateException {} @OverridePublic Connection getConnection () lanza SQLException {// Use el grupo de la base de datos del producto para obtener la conexión de conexión.Espero que la descripción en este artículo sea útil para la programación Java de todos en función del marco Hibernate.