この記事では、カスタムデータベース接続プールを使用して冬眠を拡張する方法について説明します。次のように、参照のために共有してください。
冬眠の過程で、私たちはしばしばこの問題に遭遇します。既製の製品はすでに独自のデータベース接続プールを使用しています。 Hibernateを使用する場合は、Hibernate構成でデータベース接続情報を構成する必要があります。これには、データベース接続情報を2つの場所で維持する必要があります。これは、メンテナンスが非常に厄介だと感じます。
製品開発の開始時にHibernateに参加しなかったため、製品にHibernateの接続プールを直接使用させることは適切ではないため、Hibernateに製品の接続プールを使用する必要がありました。幸いなことに、Hibernateは接続プールの拡張インターフェイスを提供しました:ConnectionProvider。
Hibernate自体は、ConnectionProviderインターフェイスを使用してデータベース接続を管理します。たとえば、独自のC3P0ConnectionProvider、ProxoolConnectionProviderなど、ConnectionProviderインターフェイスを実装するクラスを作成します。 Hibernate構成ファイルでは、このクラスに関連するパラメーターを変更しても構いません。関連するコードは次のとおりです。
次のコードは、hibernate.cfg.xmlの以前のデータベース接続情報構成を置き換えるために使用されます。
<! - nms製品を使用したカスタムプール - > <プロパティ名= "hibernate.connection.provider_class"> com.sourcedesk.jbpm.nmsconnectionprovider </property>
ConnectionManagerインターフェイスを実装するクラス:
パッケージ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.framework.jdbc.connectionmanager;/** * hibernate接続プールのカスタマイズ、hibernateを使用してください。 CloseConnection(接続接続)sqlexception {//接続を閉じますconnection manager.close(connection);}@overridepublic void configure(プロパティプロパティ)hibernateexception {} @overridepublic connection getConnection()throws sqlexception {//製品の接続リターンを使用するconnectionmanager.getConnection();}@overridepublic boolean supportsaggressiverElease(){return false;}この記事の説明が、Hibernate Frameworkに基づいた全員のJavaプログラミングに役立つことを願っています。