spring+struts2+hibernate3同时操作多个数据库,具体点就是同时从多个不同的数据库中查询数据显示在页面上。
这里设计到多个数据源。可不可以这样在applicationcontext.xml中配置多个sessionfactory和多个datasource?
在后台怎样获取所有数据库的所有session呢?
事物又怎么配置?
是不是还得应用多线程呢?
如果能给出例子,将不胜感激!
多线程注意别把数据源搞串了。
你可以这样做:
[code="xml"]
一、首先配置hibernate数据源:
1.<?xml version="1.0" encoding="UTF-8"?>
2.<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN 2.0//EN" "http://www.springframework.org/dtd/spring-beans-2.0.dtd">
3.
4. <!--1、Oracle 数据源配置-->
5.
6.
7. WEB-INF/classes/oracle-h.cfg.xml
8.
9.
10.
11.
12.
13.
14.
15.<!--2、SQLServer 数据源配置-->
16.
17.
18. WEB-INF/classes/sqlserver-h.cfg.xml
19.
20.
21.
22.
23.
24.
25.
26.<!--3、其他数据源配置-->
27..................
28. 2、配置spring的事务拦截器(AOP):
1.<!--1、oracle数据源 事务管理拦截器-->
2.
3. tx:attributes
4.
5.
6.
7. /tx:attributes
8. /tx:advice
9.<!--2、sqlserver数据源 事务管理拦截器-->
10.
11. tx:attributes
12.
13.
14.
15. /tx:attributes
16. /tx:advice
17.<!--3、其他数据源 事务管理拦截器-->
18..................
19.<!--配置多数据源的事务拦截器-->
20.
21.
22.
23. *Service
24.
25.
26.
27.
28. oracleTxAdvice
29. sqlServerTxAdvice
30. XXXXXTxAdvice
31.
32.
33.
[/code]
[quote]后台怎么同时获取? [/quote]
不同数据源都配成
oraclesessionFactory
sqlServersessionFactory这样的了,和普通bean没什么区别啊,getBean不就得到了么。
多数据源可以参考:[url]http://blog.springsource.com/2007/01/23/dynamic-datasource-routing/[/url]
不过事务,不这么简单。楼上的配置的事务都是对单个数据源的,多个数据源整体的事务,可就是分布式事务了。不知道,作者说的事务配置到底需要怎么样的。