mybatis多個資料庫
『壹』 spring+mybatis怎麼配置一個數據源,多個資料庫
spring+mybatis怎麼配置一個數據源,多個資料庫
pring配置文件
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:tx="http://www.springframework.org/schema/tx" xmlns:jdbc="http://www.springframework.org/schema/jdbc"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd
『貳』 spring+mybatis多數據源配置問題,誰能幫我分析一下問題出在哪兒
你看個範例吧:
<context:component-scan base-package="com.byd.mes.dev,com.byd.mes.bussiness.service" />
<!--===================================================================================
指定Spring配置中用到的屬性文件
====================================================================================-->
<bean id="propertyConfigurer"
class="com.byd.mes.util.PropertyConfigurer">
<property name="locations" >
<list>
<!--
<value>classpath:com/byd/mes/conf/jdbc@b_wip3.properties</value>
<value>classpath:com/byd/mes/conf/jdbc@b_wip.properties</value>
<value>classpath:com/byd/mes/conf/jdbc@bmes_wip.properties</value>
-->
<value>classpath:com/byd/mes/conf/jdbc@bmes_dev.properties</value>
<value>classpath:com/byd/mes/conf/system_conf.properties</value>
</list>
</property>
</bean>
<!--===================================================================================
數據源
====================================================================================-->
<!-- 業務資料庫 -->
<bean id="dataSourceORG" class="org.apache.commons.dbcp.BasicDataSource" destroy-method ="close"
p:driverClassName="${mes.org.jdbc.driver}"
p:url="${mes.org.jdbc.connectionURL}"
p:username="${mes.org.jdbc.username}"
p:password="${mes.org.jdbc.password}"
/>
<!-- 歸檔資料庫 -->
<bean id="dataSourceODS" class="org.apache.commons.dbcp.BasicDataSource" destroy-method ="close"
p:driverClassName="${mes.ods.jdbc.driver}"
p:url="${mes.ods.jdbc.connectionURL}"
p:username="${mes.ods.jdbc.username}"
p:password="${mes.ods.jdbc.password}"
/>
<!-- 動態數據源 -->
<bean id="dataSource" class="com.byd.mes.util.datasource.DynamicDataSource">
<property name="targetDataSources">
<map>
<entry key="orgdb" value-ref="dataSourceORG"/>
<entry key="odsdb" value-ref="dataSourceODS"/>
</map>
</property>
<property name="defaultTargetDataSource" ref="dataSourceORG" />
</bean><!--===================================================================================
ibatis配置
====================================================================================-->
<bean id="lobHandler" class="org.springframework.jdbc.support.lob.DefaultLobHandler"/>
<bean id="sqlMapClient" class="org.springframework.orm.ibatis.SqlMapClientFactoryBean">
<property name="dataSource" ref="dataSource"></property>
<property name="configLocation">
<value>classpath:com/byd/mes/conf/sqlMapConfig_mes.xml</value>
</property>
<property name="lobHandler" ref="lobHandler"/>
</bean>
<!--===================================================================================
定義事務管理器(聲明式的事務)
====================================================================================-->
<bean id="transactionManager"
class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource">
<ref local="dataSource" />
</property>
</bean>
<tx:advice id="txAdvice" transaction-manager="transactionManager">
<tx:attributes>
<tx:method name="add*" propagation="REQUIRED" timeout="60"
read-only="false" rollback-for="Throwable" />
<tx:method name="send*" propagation="REQUIRED" timeout="60"
read-only="false" rollback-for="Throwable" />
<tx:method name="save*" propagation="REQUIRED" timeout="60"
read-only="false" rollback-for="Throwable" />
<tx:method name="delete*" propagation="REQUIRED" timeout="60"
read-only="false" rollback-for="Throwable" />
<tx:method name="update*" propagation="REQUIRED" timeout="60"
read-only="false" rollback-for="Throwable" />
<tx:method name="imp*" propagation="REQUIRED" timeout="180"
read-only="false" rollback-for="Throwable" />
<tx:method name="execute*" propagation="REQUIRED" timeout="60"
read-only="false" rollback-for="Throwable" />
</tx:attributes>
</tx:advice>
<aop:config>
<aop:pointcut id="interceptorPointCuts"
expression="(execution(* com.byd.mes..*ServiceImpl.*(..)))" />
<aop:advisor
advice-ref="txAdvice" pointcut-ref="interceptorPointCuts" />
</aop:config>
<!--===================================================================================
OTHER SPRING XML
====================================================================================-->
<!-- 許可權 -->
<import resource="applicationContext-permission.xml" />
<!-- 動態任務 -->
<import resource="applicationContext-quartz.xml" />
<!--===================================================================================
ACTION XML
====================================================================================-->
<!-- 主數據 action -->
<import resource="action_mes_main.xml"/>
<!-- 許可權action -->
<import resource="action_mes_system.xml"/>
<!-- 現場操作管理 -->
<import resource="action_mes_siteoperation.xml"/>
<!-- 倉庫管理 -->
<import resource="action_mes_wm.xml"/>
<!-- 包裝出貨管理 -->
<import resource="action_mes_packing.xml"/>
<!-- 生成管理-->
<import resource="action_mes_proction.xml"/>
<!-- 系統緩存配置-->
<import resource="cache_conf.xml"/>
<!-- 開發-->
<import resource="action_mes_dev.xml"/>
<!--===================================================================================
DAO XML
=====================================================================================-->
<!-- 主數據 -->
<import resource="_mes_main.xml" />
<!-- 許可權DAO -->
<import resource="_mes_system.xml" />
<!-- POD模塊DAO -->
<import resource="_mes_siteoperation.xml" />
<!-- 倉庫模塊DAO -->
<import resource="_mes_wm.xml" />
<!-- 生產管理DAO -->
<import resource="_mes_proction.xml" />
<!-- 包裝 -->
<import resource="_mes_packing.xml" />
<!-- _pagedesign.xml -->
<import resource="_pagedesign.xml" />
<!--===================================================================================
SERVICE XML
=====================================================================================-->
<!-- 主數據 service-->
<import resource="service_mes_main.xml" />
<!-- 許可權SERVICE -->
<import resource="service_mes_system.xml" />
<!-- POD模塊SERVICE -->
<import resource="service_mes_siteoperation.xml" />
<!-- 倉庫模塊SERVICE -->
<import resource="service_mes_wm.xml" />
<!-- 生產管理SERVICE -->
<import resource="service_mes_proction.xml" />
<!-- 包裝 service-->
<import resource="service_mes_packing.xml" />
<!--===================================================================================
OTHER XML
=====================================================================================-->
<!-- Applicationcontext應用Bean -->
<bean id="beanFactory" class="com.byd.mes.util.BeanFactory"
p:propertyConfigurer-ref ="propertyConfigurer"/>
<!--===================================================================================
系統標准功能點 XML解析服務類
=====================================================================================-->
<bean id="standardActivityXMLParseClass" class="java.util.HashMap">
<constructor-arg>
<map>
<entry key="START" value="com.byd.mes.dev.parseXml.StartActivityUtil,START" />
<entry key="COMPLETE" value="com.byd.mes.dev.parseXml.CompleteActivityUtil,COMPLETE" />
<entry key="NCLOG" value="com.byd.mes.dev.parseXml.NcLogCompleteActivityUtil,NCLOG" />
<entry key="SFCDATACOLLECTION" value="com.byd.mes.dev.parseXml.DataCollectionActivityUtil,SFCDATACOLLECTION" />
<entry key="SERIALIZE" value="com.byd.mes.dev.parseXml.SerializeActivityUtil,SERIALIZE" />
<entry key="PASS" value="com.byd.mes.dev.parseXml.PassActivityUtil,PASS" />
</map>
</constructor-arg>
</bean>
</beans>
『叄』 spring+mybatis 多資料庫事務管理:一個方法裡面能同時對兩個資料庫的數據進行操作
定義兩個DAO分別使用不同的數據源,ADAO連接A資料庫,BDAO連接B資料庫
定義一個Service類,加上Spring註解@Transactional,表示進行事務管理。
將ADAO和BDAO注入到Service類裡面。
在service類裡面創建一個方法,方法里調用ADAO的方法插入數據到A資料庫的user表,然後調用BDAO的方法插入數據到B資料庫的user表
『肆』 mybatis連2個資料庫 怎麼判斷使用
在DAO的實現類層你可以看到你implements的方法的名稱,這個名稱就是你配置數據源名稱的地方,通過數據源名稱查詢你的WEB-INF/項目名稱/config/**Context.xml文件里配置的數據源信息。再通過WebLogic控制台找到你配置信息的具體數據源及各種信息。
『伍』 在Mybatis中連接查詢兩個資料庫的兩張表的欄位怎麼搞
跟你之前只有一個資料庫寫SQL一樣的。只不過表明前面帶上資料庫的schema名稱就好了,跟寫單庫的表查詢一樣一樣的。
select*fromuser.`user`u
leftjointrade.`trade_order`t
on
u.`id`=t.`user_id`
為了給你講解清楚,特地親手創建了兩個資料庫,以及兩張表。希望對你有幫助,還望採納最佳噢!謝謝 ^_^
『陸』 spring+mybatis 多資料庫事務管理:一個方法裡面能同時對兩個數據源的數據進行操作,這兩個資料庫中的表
1.定義兩個DAO分別使用不同的數據源,ADAO連接A資料庫,BDAO連接B資料庫
2.定義一個Service類,加上Spring註解@Transactional,表示進行事務管理。事務要配置成jta分布式事務。
將ADAO和BDAO注入到Service類裡面。
在service類裡面創建一個方法,方法里調用ADAO的方法插入數據到A資料庫的user表,然後調用BDAO的方法插入數據到B資料庫的user表
『柒』 mybatis怎麼實現兩種資料庫的兼容
在系統運行過程中,針對不同資料庫類型區分載入不同文件路徑下的sqlmap配置。
留給開發人員做的事依舊是快樂地編寫原始資料庫語句,而不再為多資料庫兼容問題撓頭。
『捌』 mybatis怎麼配置兩個資料庫
這是我之前寫的一個在xml文件中配置oracle數據源的部分代碼,由於我是用了分散配置,所以vaule=的值是在另外一個文件中,lz可以直接將相關信息硬編碼進去