求助: 用Hibernate连接多个数据库的问题?

07-04-01 hellohong
大家好!

  最近要完成一个项目, 给每个客户都要分配一个数据库, 要求输入客户号, 用户名, 密码, 然后根据客户号连接到不同的数据库, 然后再从这个数据库里面取用户名和密码进行验证. 以前用Hibernate做的时候都是只用到一个数据库的问题, 现在这种情况该如何配置和解决呢?

  例如说我现在要连接到SqlServer和MySQL, SqlServer中有TF000001, TF000002, TF000003, MySQL中有TF000004, TF000005, 我用客户号TF000001登陆, 要求连到SqlServer中的TF000001, 用TF000004的话就要连到MySQL中的TF000004, 请问如何来实现呢?

banq
2007-04-02 12:23
不要在Hibernate中直接配置datasource,使用JNDI。

JNDI需要在容器tomcat或JBoss中配置,然后再将JNDI名称配置在Hibernate中。

tomcat或JBoss如何配置JNDI可搜索google.

使用案例可见JdonFramework应用案例samples包下struts+jdon+hibernate使用。

Jboss下不同数据库配置不同,mysql配置mysq-ds.xml oracle配置oracle-ds.xml等等。

注意还必须使用JTA事务,这样可以保证跨数据库事务完整性,否则就容易不同数据库数据不一致。

zuly
2007-04-02 13:41
我有一个类似医药代理商的项目!

一开始也使用了你的这种模式!其实是一个非常不合理的方法!

没有发挥JAVAOO的作用,的确代码简单了,但是数据库复杂了!而且扩展,修改,需求变更适应能力=0!

后来采用了新的Persistence设计!采用XML DATA->SCHEMA+DATASOURCE的方案

只使用了一个数据库!就解决了问题!

具体思想就是定义了一套动态的PoJo!然后使用hb来Persist!

这些POJO都是通过xjc动态生成的!也就是基于Binding的解决方案!

楼主可以google jaxb,xml binding来获取相关的设计思想!

[该贴被zuly于2007年04月02日 13:43修改过]

hellohong
2007-04-02 21:13
谢谢bang和zuly的解答, 努力试一下, google一下,

碰到问题了再来请教!

再次谢谢大家!

猜你喜欢