社区
Web 开发
帖子详情
如何在一个WEB程序里 同时连接多个数据库
馒头虫
2009-11-09 11:31:10
需求如下:
做一个中间服务器 对多个数据库的数据进行格式化 并以WEBSERVICE的方式提供给第三方使用
现在的问题是 可能同时需要对多个数据库进行访问 功能都是一样的 但是数据库类型、结构都有可能不同,用什么样的方式最好。数据量不大
框架是SSH。
...全文
840
16
打赏
收藏
如何在一个WEB程序里 同时连接多个数据库
需求如下: 做一个中间服务器 对多个数据库的数据进行格式化 并以WEBSERVICE的方式提供给第三方使用 现在的问题是 可能同时需要对多个数据库进行访问 功能都是一样的 但是数据库类型、结构都有可能不同,用什么样的方式最好。数据量不大 框架是SSH。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
16 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
jxh_722
2011-10-18
打赏
举报
回复
馒头虫
2009-11-11
打赏
举报
回复
感谢大家的帮助
xsm
2009-11-10
打赏
举报
回复
1、如果一个项目要从两个乃至多个数据库实例读取数据,该如何处理?
2、如果只有一个数据库oraA,为其建立建立oraA.hbm.xml以及hibernate.properties文件,该文件中的数据库连接部分写为:
## Oracle
hibernate.dialect net.sf.hibernate.dialect.OracleDialect
hibernate.connection.driver_class oracle.jdbc.driver.OracleDriver
hibernate.connection.username username
hibernate.connection.password password
hibernate.connection.url jdbc:oracle:thin:@local:1521:ora
3、如有两个oracle数据库oraA和oraB,分别为其建立oraA.hbm.xml和oraB.hbm.xml映射文件,这样数据库中的各个表和实体持久化类就可以映射好,但是hibernate.properties中的数据库配置部分该如何处理呢,怎样才能同时连接上两个数据库实例呢?
如果用这个Configuration.configure(File configFile)
configFile可以是不同的配置。
通过配置configFile可以得到每个数据库的configuration, 也就是可以获得每个数据库实例的session;但是在hibernate.properties文件中怎么写数据库连接部分呢,一个数据库的时候写法是:hibernate.connection.url jdbc:oracle:thin:@local:1521:ora
那如果有两个数据库实例呢,在hibernate.properties文件中怎么处理,总不会是写成如下吧:
##oracle
hibernate.dialect net.sf.hibernate.dialect.OracleDialect
hibernate.connection.driver_class oracle.jdbc.driver.OracleDriver
hibernate.connection.username username
hibernate.connection.password password
hibernate.connection.url jdbc:oracle:thin:@local:1521:oraA
hibernate.connection.username usernamet
hibernate.connection.password passwordt
hibernate.connection.url jdbc:oracle:thin:@local:1521:oraB
Answer:
写两个hibernate.properties,例如连接oraA的叫做hibernateA.properties,连接oraB的叫做hibernateB.properties。
hibernateA.properties内容如下:
引用:
hibernate.dialect net.sf.hibernate.dialect.OracleDialect
hibernate.connection.driver_class oracle.jdbc.driver.OracleDriver
hibernate.connection.username username
hibernate.connection.password password
hibernate.connection.url jdbc:oracle:thin:@local:1521:oraA
hibernateB.properties内容如下:
引用:
hibernate.dialect net.sf.hibernate.dialect.OracleDialect
hibernate.connection.driver_class oracle.jdbc.driver.OracleDriver
hibernate.connection.username usernamet
hibernate.connection.password passwordt
hibernate.connection.url jdbc:oracle:thin:@local:1521:oraB
程序里面:
代码:
java代码:
Configuration conf_oraA = new Configuration("/hibernateA.properties").addClass().......;
Configuration conf_oraB = new Configuration("/hibernateB.properties").addClass().......;
SessionFactory sf_oraA = conf_oraA.buildSessionFactory();
SessionFactory sf_oraB = conf_oraB.buildSessionFactory();
Session s_oraA = sf_oraA.openSession();
Session s_oraB = sf_oraB.openSession();
......
---------------------------------------------------------------
更正一下
方案一:
写两个hibernate.cfg.xml
使用数据库a的时候
Configuration cfg_a=new Configuration().configure(hibernate.cfg_a.xml);
使用数据库b的时候
Configuration cfg_b=new Configuration().configure(hibernate.cfg_b.xml);
方案二:
使用一个能操作两个数据库的账号,在?.hbm.xml映射文件中的class标签中指定catalog为数据库名
http://developer.51cto.com/art/200907/133239.htm
xsm
2009-11-10
打赏
举报
回复
http://developer.51cto.com/art/200907/133239.htm
http://www.51testing.com/html/20/1514.html
馒头虫
2009-11-09
打赏
举报
回复
对了 还用了连接池 proxool
如果用sessionFactory 如何去区别不同的数据库了
我的数据库连接信息是存在一个固定的数据库的 如何解决呢
huguang
2009-11-09
打赏
举报
回复
既然是Hibernate, 只要配置多个sessionFactory就可以
ctl_cug
2009-11-09
打赏
举报
回复
使用数据库连接池
馒头虫
2009-11-09
打赏
举报
回复
[Quote=引用 3 楼 liua 的回复:]
<bean id="dataSource1"
class="com.mchange.v2.c3p0.ComboPooledDataSource"
destroy-method="close">
<property name="jdbcUrl">
<value>${datasource.url.base} </value>
</property>
<property name="user">
<value>${datasource.username} </value>
</property>
<property name="password">
<value>${datasource.password} </value>
</property>
.... </bean>
<bean id="dataSource2"
class="com.mchange.v2.c3p0.ComboPooledDataSource"
destroy-method="close">.... </bean>
有几个配几个就行
DAO中用到了那个数据库就设置那个dataSource就行了
[/Quote]
现在的问题是 我也不知道有多少个
需要动态决定有多少个数据库 这个是不一定的 有可能运行的时候还要添加删除
馒头虫
2009-11-09
打赏
举报
回复
[Quote=引用 6 楼 java2000_net 的回复:]
简单的做法,就是不同的库,提供不同的url
部署不同的应用
简单、有效、出问题的几率低
[/Quote]
您的意思 如果我下挂有100个客户 就部署100个应用 ?
紫炎圣骑
2009-11-09
打赏
举报
回复
就按照楼上的配置即可!
haha_king
2009-11-09
打赏
举报
回复
我这个事连接MYSQL和ORACLE的,看看对你有没有帮助:
<bean id="dataSource"
class="org.apache.commons.dbcp.BasicDataSource"
destroy-method="close">
<property name="driverClassName">
<value>com.mysql.jdbc.Driver</value>
</property>
<property name="url">
<!-- <value>jdbc:mysql://193.168.4.2:3306/consumer?useUnicode=true&characterEncoding=utf-8&autoReconnect=true</value> -->
<value>jdbc:mysql://193.168.1.200:3306/consume?useUnicode=true&characterEncoding=utf-8&autoReconnect=true</value>
</property>
<property name="username">
<value>root</value>
</property>
<property name="password">
<value>1234</value>
</property>
</bean>
<bean id="oracleDataSource"
class="org.apache.commons.dbcp.BasicDataSource"
destroy-method="close">
<property name="driverClassName">
<value>oracle.jdbc.driver.OracleDriver</value>
</property>
<property name="url">
<value>jdbc:oracle:thin:@193.168.1.6:1521:oracle9</value>
</property>
<property name="username">
<value>username</value>
</property>
<property name="password">
<value>password</value>
</property>
</bean>
lzh_me
2009-11-09
打赏
举报
回复
mark
老紫竹
2009-11-09
打赏
举报
回复
简单的做法,就是不同的库,提供不同的url
部署不同的应用
简单、有效、出问题的几率低
luffyke
2009-11-09
打赏
举报
回复
用数据库连接池
jingshuaizhjason
2009-11-09
打赏
举报
回复
up
liua
2009-11-09
打赏
举报
回复
<bean id="dataSource1"
class="com.mchange.v2.c3p0.ComboPooledDataSource"
destroy-method="close">
<property name="jdbcUrl">
<value>${datasource.url.base}</value>
</property>
<property name="user">
<value>${datasource.username}</value>
</property>
<property name="password">
<value>${datasource.password}</value>
</property>
....</bean>
<bean id="dataSource2"
class="com.mchange.v2.c3p0.ComboPooledDataSource"
destroy-method="close">....</bean>
有几个配几个就行
DAO中用到了那个数据库就设置那个dataSource就行了
web
.config中配置
数据库
连接
的两种方式
然后在
程序
中调用
数据库
连接
代码,这样做的好处就是当
数据库
连接
代码需要改变的时候,我们只要修改
web
.config中的
数据库
连接
代码即可,而不必在修改每
一个
页面中的
数据库
连接
代码。 在ASP.NET中有两种配置
数据库
...
java
web
连接
数据库
测试 java
web
连接
数据库
数据库
连接
池为什么要建立
多个
连接
一般
程序
在访问
数据库
的时候,都是使用
数据库
连接
池,比如:DBCP,C3P0等等。至于为什么使用
连接
池,大家都知道,就是为了避免频繁的与
数据库
建立
连接
, 因为建立
连接
是
一个
比较耗时的操作。而
连接
池的配置基本...
微信小
程序
连接
数据库
与WXS的使用
一种方案是将
数据库
部署在远程服务器,通过API接口或云服务提供商实现访问。另一种方案是使用WXS本地存储,适合简单的数据存储需求。WXS操作简单、与页面关联,适用于小规模数据存储。无论选择哪种方案,都能满足小...
Web
开发&创建项目
连接
数据库
web
学习过程中,操作
数据库
是经常性的,一般只开发小型的项目,用mysql就可以完成功能,如果开发大型项目,一般借助oracle。这
里
示例myeclipse来
连接
mysql。首先确保电脑安装了mysql
数据库
。我用的是mysql5.6版本。 ...
Web 开发
81,091
社区成员
341,719
社区内容
发帖
与我相关
我的任务
Web 开发
Java Web 开发
复制链接
扫一扫
分享
社区描述
Java Web 开发
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章