我在我的應用程序中使用MyBatis和Spring Integration。我們公司有幾個Oracle數據庫。一個查詢必須在一個數據庫中執行,另一個必須在其他數據庫中執行。如何配置MyBatis以將不同的數據庫連接用於不同的查詢?如何使用MyBatis Spring集成連接到多個數據庫?
2
A
回答
3
我找到答案here。這種解決方案在某些情況下不是最好的,但對我有好處。
0
這是MyBatis 3用戶指南中第一個主題。基本上你應該有幾個XML配置文件爲每個數據庫。而最簡單的方法是通過將配置
String resource = "org/mybatis/example/Configuration.xml";
Reader reader = Resources.getResourceAsReader(resource);
sqlMapper = new SqlSessionFactoryBuilder().build(reader);
編輯創建映射器: 對不起,沒有仔細閱讀。無論如何,我相信代碼snipet是自我解釋:
<jee:jndi-lookup id="jndiDatabase1" jndi-name="jdbc/database1"/>
<jee:jndi-lookup id="jndiDatabase2" jndi-name="jdbc/database2"/>
<bean id="database1" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="configLocation" value="classpath:/some/path/to/database1Config.xml"/>
<property name="dataSource" ref="jndiDatabase1"/>
</bean>
<bean id="database2" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="configLocation" value="classpath:/some/path/to/database2Config.xml"/>
<property name="dataSource" ref="jndiDatabase2"/>
</bean>
0
如果您正在尋找支持不同類型的數據庫,我的答案只是爲此。
從Mybatis 3開始,它內部支持多數據。有關詳細配置,請參閱官方文檔at here。
以下是如何與Spring
<bean id="vendorProperties" class="org.springframework.beans.factory.config.PropertiesFactoryBean">
<property name="properties">
<props>
<prop key="SQL Server">sqlserver</prop>
<prop key="DB2">db2</prop>
<prop key="Oracle">oracle</prop>
<prop key="MySQL">mysql</prop>
</props>
</property>
</bean>
<bean id="databaseIdProvider" class="org.apache.ibatis.mapping.VendorDatabaseIdProvider">
<property name="properties" ref="vendorProperties"/>
</bean>
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource" />
<property name="databaseIdProvider" ref="databaseIdProvider" />
</bean>
相關問題
- 1. 如何使用Spring來管理連接到多個數據庫
- 2. 如何在MyBatis中使用MyBatis-Spring配置2個數據庫
- 3. spring + mybatis,如何在http請求中共享數據庫連接
- 4. 如何連接到多個數據庫Spring Boot JPA?
- 5. 連接到使用Spring集成
- 6. 如何使用knex.js連接到多個數據庫?
- 7. 如何使用JPA連接到多個數據庫?
- 8. Spring集成:多個應用程序集成使用Spring集成
- 9. MyBatis - 在同一服務調用中連接到多個數據庫
- 10. Spring Boot JPA:如何連接多個數據庫?
- 11. 連接到多個數據庫
- 12. 使用LINQ連接多個數據庫
- 13. EntityFramwork,使用多個數據庫/連接
- 14. StackExchange.Redis連接到多個數據庫
- 15. 多個數據庫連接
- 16. Spring和Mybatis多個數據源設置
- 17. 從Hibernate和Spring連接到多個數據庫
- 18. 多個數據庫連接
- 19. 動態連接到多個數據庫
- 20. Spring/MyBatis JDBC連接拒絕
- 21. QSqlDatabase連接到多個數據庫
- 22. 連接到多個數據庫
- 23. 多個數據庫連接
- 24. 如何使用IBM Cognos連接到Mondrian多維數據集(XMLA)
- 25. MyBatis Spring多個數據庫的DYNAMIC數量Java配置
- 26. Codeigniter連接到多個數據庫
- 27. Java連接到多個數據庫
- 28. 配置Pentaho數據集成連接到Oracle數據庫
- 29. 如何使用MyBatis更新數據庫?
- 30. Spring + JDBC無法連接到數據庫
配置它,我用的MyBatis Spring配置和我的代碼不包含Java代碼什麼創造MyBatis的對象。這是我如何配置的SqlSessionFactory: <豆ID = 「SqlSessionFactory中」 類= 「org.mybatis.spring.SqlSessionFactoryBean」> <屬性名= 「數據源」 REF = 「數據源」/> <屬性名=「typeAliasesPackage 「value =」com.llth.paymentgateway.domain「/> 是否可以使用另一個配置的SqlSessionFactoryBean使用另一個數據源? – Tural 2013-02-21 12:31:26
假設我按照您描述的方式配置了dataSources。如何強制映射器中定義的查詢使用它們中的任何一個? – Tural 2013-02-21 16:55:25
鑑於您已經正確配置了MyBatis配置,正如[documentation](http://www.mybatis.org/spring/sqlsession.html)中所述,您可以創建sqlSession bean並將其注入到DAO對象中。 – 2013-02-21 21:14:07