小弟接手了一个小项目,分别为三个数据库分别布在三个服务器上。现需要通过mybatis与spring整合这三个数据库,查询时在这三个库里分别查询后存到一个对象里显示到页面上。
现在不知道怎么配置来连接这三个数据源。代码如下:
applicationContext.xml:
<!-- 使用annotation 自动注册bean,并保证@Required,@Autowired的属性被注入 -->
<context:component-scan base-package="com.pcd" />
<!-- 数据库连接池 --> <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close"> <property name="driverClassName" value="oracle.jdbc.driver.OracleDriver"/> <property name="url" value="jdbc:oracle:thin:@***.***.***.***:1521:***"/> <property name="username" value="***"/> <property name="password" value="***"/> </bean>
<!-- 事务管理--> <bean id="txManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> <property name="dataSource" ref="dataSource"/> </bean> <!-- 事务的处理方式 --> <tx:advice id="txAdvice" transaction-manager="txManager"> <tx:attributes> <tx:method name="query*" read-only="true" /> <tx:method name="list*" read-only="true" /> <tx:method name="update*" /> <tx:method name="delete*" /> <tx:method name="" /> </tx:attributes> </tx:advice> <aop:config> <aop:pointcut id="ServicePointcut" expression="execution( com.pcd.zzzxweb...Service.(..))"/> <aop:advisor advice-ref="txAdvice" pointcut-ref="ServicePointcut"/> </aop:config>
<tx:annotation-driven transaction-manager="txManager" proxy-target-class="true"/> <!-- myBatis配置 --> <!-- 配置SqlSessionFactoryBean --> <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> <property name="dataSource" ref="dataSource"/> <property name="configLocation" value="classpath:mybatis-config.xml"/> <property name="mapperLocations" > <list> <!-- mapper接口对应的xml路径 如果mapper接口的保内有和接口名一致的xml 则不用配置这个 --> <value>classpath:com/pcd/zzzxweb/**/*-Mapper.xml</value> </list> </property> </bean>
<!-- 通过扫描的模式,扫描目录在com/forsoft/xxx(xxx为项目名)目录下,所有的mapper都继承SqlMapper接口的接口, 这样一个bean就可以了 --> <bean name="mapperScannerConfigurer" class="org.mybatis.spring.mapper.MapperScannerConfigurer"> <property name="basePackage" value="com.pcd.zzzxweb"/> <property name="markerInterface" value="com.pcd.frame.mybatis.SqlMapper"/> </bean> <!--配置另一个数据源 --> <!-- 数据库连接池1 --> <bean id="dataSource1" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close"> <property name="driverClassName" value="oracle.jdbc.driver.OracleDriver"/> <property name="url" value="jdbc:oracle:thin:@***.***.***.***:1521:***"/> <property name="username" value="***"/> <property name="password" value=""/> </bean> <!-- 事务管理1--> <bean id="txManager1" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> <property name="dataSource" ref="dataSource1"/> </bean> <tx:annotation-driven transaction-manager="txManager1" proxy-target-class="true"/> <!-- 配置SqlSessionFactoryBean1 --> <bean id="sqlSessionFactory1" class="org.mybatis.spring.SqlSessionFactoryBean"> <property name="dataSource" ref="dataSource1"/> <property name="configLocation" value="classpath:mybatis-config1.xml"/> <property name="mapperLocations" > <list> <!-- mapper接口对应的xml路径 如果mapper接口的保内有和接口名一致的xml 则不用配置这个 --> <value>classpath:com/pcd/zzzxweb//-Mapper.xml</value> </list> </property> </bean> <!-- 通过扫描的模式,扫描目录在com/forsoft/xxx(xxx为项目名)目录下,所有的mapper都继承SqlMapper接口的接口, 这样一个bean就可以了 --> <bean name="mapperScannerConfigurer1" class="org.mybatis.spring.mapper.MapperScannerConfigurer"> <property name="basePackage" value="com.pcd.zzzxweb"/> <property name="markerInterface" value="com.pcd.frame.mybatis.SqlMapper1"/> </bean> <!-- 权限拦截器开始 --> <bean id="rc" class="com.pcd.frame.RightCheckService" scope="prototype"> <property name="dataSource" ref="dataSource"/> </bean> <bean id="rightInterceptor" class="com.pcd.frame.interceptor.RightInterceptor" scope="prototype"> <property name="rc"> <ref bean="rc" /> </property>
</bean> <!-- 权限拦截器结束 --> <bean id="nativeJdbcExtractor" class="org.springframework.jdbc.support.nativejdbc.CommonsDbcpNativeJdbcExtractor" lazy-init = "true"/> <bean id="oracleLobHandler" class="org.springframework.jdbc.support.lob.OracleLobHandler" lazy-init="true"> <property name="nativeJdbcExtractor" ref="nativeJdbcExtractor"/> </bean> <!-- 系统模块管理开始 --> <bean id="operationAction" class="com.pcd.zzzxweb.operation.OperationAction" scope="prototype"> </bean> <!-- 系统模块管理结束 -->
</beans>
求大神支招,小弟不胜感激!
大神们!快来啊!######我就来凑个热闹,帮你顶起来######回复 @菜菜打怪兽 : 客气了######也谢谢你~######帮你顶一下,密切关注中######呼叫大神~!###### 把 sqlSessionFactory和dataSource1配置在一起算是一个完整的数据源,so你需要配置多个这样的组合 ######
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。