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可以直接将相关信息硬编码进去