如何使用Hibernate動態連接到多個mysql數據庫?在休眠時連接到多個數據庫
2
A
回答
5
我相信Spring中可以有多個SessionFactory,每個SessionFactor都使用一個單獨的DataSource。您可以將特定的SessionFactory傳遞給適當的DAO。
3
如果您在out spring中使用hibernate,您可以爲每個數據庫設置多個hibernate屬性xml。在這些xml文件中,您可以指定數據庫主機,用戶名,密碼,數據庫名稱和其他連接屬性。您可以使用xml文件創建多個會話工廠,並在DAO類中使用正確的會話工廠。
1
創建一個包含HibernateProperties和SessionFactory實體的類。 喜歡的東西:
public class HibernateSessionFactory {
private static final long serialVersionUID = 1L;
private static Log log = LogFactory.getLog(HibernateSessionFactory.class);
private Resource[] mappingLocations;
private Properties hibernateProperties;
private SessionFactory factory;
這將是很好,如果你可以在以後使用Spring,並與數據庫連接的詳細注入這個類的,後來這個HibernateSessionFactory分配給相關的DAO類。
我以前做過,或多或少它看起來像這樣:
<bean id="mapHibernateFactory"
class="com.geofencing.dao.hibernate.HibernateSessionFactory"
init-method="init" destroy-method="dispose" scope="singleton">
<property name="mappingResources">
<list>
..... your hibernate mapping files .....
</list>
</property>
<property name="hibernateProperties">
<props>
<prop key="hibernate.hbm2ddl.auto">false</prop>
<prop key="hibernate.show_sql">false</prop>
<prop key="hibernate.format_sql">false</prop>
<prop key="hibernate.connection.isolation">4</prop>
<prop key="hibernate.connection.autocommit">false</prop>
<prop key="hibernate.connection.url">${jdbc.url}</prop>
<prop key="hibernate.connection.username">${jdbc.username}</prop>
<prop key="hibernate.connection.password">${jdbc.password}</prop>
<prop key="hibernate.connection.driver_class">${jdbc.driverClassName}</prop>
<prop key="hibernate.dialect">${jdbc.dialect}</prop>
<prop key="hibernate.c3p0.min_size">5</prop>
<prop key="hibernate.c3p0.max_size">20</prop>
<prop key="hibernate.c3p0.timeout">1800</prop>
<prop key="hibernate.c3p0.max_statements">50</prop>
<prop key="hibernate.cache.provider_class"> org.hibernate.cache.EhCacheProvider</prop>
<prop key="net.sf.ehcache.configurationResourceName">WEB-INF/ehcache.xml</prop>
<prop key="hibernate.cglib.use_reflection_optimizer">false</prop>
<prop key="hibernate.connection.zeroDateTimeBehavior">convertToNull</prop>
<prop key="hibernate.connection.autoReconnect">true</prop>
<prop key="hibernate.connection.autoReconnectForPools">true</prop>
</props>
</property>
</bean>
不知道如何與註解做到這一點,雖然。
相關問題
- 1. 休眠連接到同一個表的多個數據庫
- 2. 休眠 - 無法連接到數據庫
- 3. 如何連接到休眠中的多個數據庫
- 4. 使用休眠時數據庫連接太多
- 5. 多個連接取休眠
- 6. 休眠不釋放數據庫連接
- 7. 連接到休眠數據庫時出錯
- 8. 使用休眠創建兩個連接器到數據庫
- 9. 如何通過休眠連接到兩個數據庫
- 10. 休眠/彈出:很多(數千)打開的連接數據庫
- 11. 遷移到休眠後無法連接到數據庫4
- 12. 使用多個數據庫休眠
- 13. Grails多個數據庫無休眠
- 14. 休眠與多個數據庫
- 15. 休眠多重連接
- 16. 休眠JPA連接太多
- 17. 休眠時在單個事務中寫入多個數據庫
- 18. 使用休眠與數據庫連接時出錯
- 19. HSQLDB EJB3.0休眠無法連接到數據庫
- 20. 休眠:作爲SYSDBA連接到Oracle數據庫
- 21. 休眠不能重新連接到mysql數據庫
- 22. 休眠連接到錯誤的數據庫
- 23. 無法連接到數據庫使用Tomcat 5.5和休眠
- 24. 多帳戶數據庫在休眠
- 25. 多個休眠數據源
- 26. 如何連接兩個數據庫來休眠eclipse web項目?
- 27. 無法連接兩個不同的數據庫與休眠
- 28. Spring和休眠中的幾個只讀數據庫連接
- 29. 休眠/ MySQL連接超時
- 30. 休眠連接超時
你的意思是一個應用程序在運行時調用多個數據庫或基於環境改變數據庫? –