关于异构数据库的连接池?

我们通常讲的数据库连接池都是同一种数据库的连接比如连接同一个oracle的多个数据库连接到池里,现在有遇到有这样的需求,在一个web应用中有些表是要连接sqlite有些表是连接oracle的,具体连那个是根据读取配置文件来的,目前做法是因为数据库连接类型不是固定不变的,数据库连接时根据配置文件产生一个连接然后关闭一个连接。这种做法必然效率低下,可不可以在这种情况下用长连接或数据库连接池那。
[b]问题补充:[/b]
to pan_java:问题是我这个web界面还要求管理多库这样不是要配多个数据库连接池
[b]问题补充:[/b]
to pjun:你们这种方法为常不可,我现在是用spring管理多数据源,用户login进去后取出每个库里的一小部分数据放在主页面上,数据旁标上库名,用户点那个库就进入那库,一般有5到10库左右,因为设计到数据库连接的切换,所以先前就没用连接池,只是一个管理界面,没有很大用户数量。如何这样每个库都要配连接池,工作量很大的,也不太合理
[b]问题补充:[/b]
这样是不是搞复杂了
[b]问题补充:[/b]
to pjun:我现在新增一个库就要修改一个配置文件,如果在tomcat配置数据源的话,每加一个库就要配一个数据源有一点工作量,而且读取数据库时代码和数据源要绑在一起,部署人员还要配置tomcat数据源这又增加了部署难度
[b]问题补充:[/b]
to pjun:最后一点tomcat配置的数据源,spring可以管理吗?
[b]问题补充:[/b]
已经决定那,把oracle数据库连接和sqlite连接放在一个池里,或维持长连接,这下搞复杂那,要把不同数据库的连接放在数据库里,还要区分oracle和sqlite,有这种可能吗
[b]问题补充:[/b]
to pjun:我们这里的大拿也决定那,把oracle数据库连接和sqlite连接放在一个池里,或维持长连接,这下搞复杂那,要把不同数据库的连接放在连接池里,还要区分oracle和sqlite,有这种可能吗 ?
oracle数据库连接和sqlite连接放在一个池里这个应该可以实现的,不过从池里拿连接要判断一下

14个回答

:D 第一次听说这样的用法,LZ做完了可以写篇Blog介绍经验. :idea:
期待LZ的经验分析.

用二个连接池就是了,tomcat可以配制啊

我的结论和楼上一样,建立两个不同类型的链接池,一个池维护sqlite链接,另一个池维护Oracle链接. 程序里面判断用哪种链接就从那种连接池里面取链接来用就可以了.

至于LZ补充的说要维护多库,还没能明白什么意思? 请LZ继续补充说明.

是啊,在程序通过在不同的jdni 去获取就是了

首先你应该明确一点,web中一般连接池是由容器(如:Tomcat)来管理的。

再你只需要判断(程序中)什么时候操作什么库什么表

Spring管理多个数据源,每个源配置个连接池不就可以了吗??
貌似不需要设计代码的修改哦. :D

[color=red]这样是不是搞复杂了 [/color]

实现多个连接池就可以,然后通过程序去确认.

没明白LZ说的复杂是那方面的?
修改下配置,修改下获取连接的方式.其他都不用改的.貌似没有什么复杂,
而且用上了连接池,性能有所提高不是LZ的目的吗? :D

[color=red]我现在新增一个库就要修改一个配置文件,如果在tomcat配置数据源的话,每加一个库就要配一个数据源有一点工作量,而且读取数据库时代码和数据源要绑在一起,部署人员还要配置tomcat数据源这又增加了部署难度 [/color]

这是没有办法的.因为对于你的这种需求.只能这样去做.

tomcat 增加相关 配制

加入读取程序(所有的程序都是一样的,你可以写一个抽象类.)只是相关JNDI名不同而已.

共14条数据 1 尾页
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!