浏览 12622 次
锁定老帖子 主题:怎样在配置多个数据库服务器的信息
该帖已经被评为精华帖
|
|
---|---|
作者 | 正文 |
发表时间:2003-10-02
谢谢! 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2003-10-02
Question:
引用 我现在在做一个项目,需要从两个数据库实例中存取数据,在用hibernate实现的过程中该如何配置和处理
-------------------------------------------------------------------------------- 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 程序里面: 代码: 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();; ...... |
|
返回顶楼 | |
发表时间:2003-10-04
如果使用XML配置文件也可以这么做吗?
|
|
返回顶楼 | |
发表时间:2003-10-04
我会试一下 写道 如果使用XML配置文件也可以这么做吗?
当然可以 |
|
返回顶楼 | |
发表时间:2003-10-14
这么说我上次问的多个缓冲池配置的问题也得这么作喽?
那样的话,原来一个XML文件里的20多个缓冲池岂不是 拆成了二十几个配置文件,是不是有点弱智?难道没有比这好一点 的方案吗。 关于缓冲池的提问见下帖: http://forum.hibernate.org.cn/viewtopic.php?t=494 |
|
返回顶楼 | |
发表时间:2004-08-26
这里有以前的一篇文章,讲了这个问题:
http://blog.csdn.net/hongbo781202/archive/2004/05/31/13139.aspx |
|
返回顶楼 | |
发表时间:2004-08-31
robbin说的产生多个sessionFactory的方法,创建数据库连接。
还有另外一种方法,我来补充。用xml的话,这样: 把hibernateA.properties和hibernateB.properties用xml形式改写。之后, Configuration cfg = new Configuration();; cfg.configure("hibernateA.cfg.xml");.configure("hibernateB.cfg.xml");; SessionFactory _sessions = cfg.buildSessionFactory();; 这样就在一个sessionFactory创建多个数据库了。 |
|
返回顶楼 | |
发表时间:2004-12-01
我试用了上面的代码,一个sessionFactory创建多个数据库连接,但是我使用的时候,不行的,系统错误告诉我,找不到,表或视图,我发现同时使用楼上的方法加载两个配置的时候,只有最后一次加载的配置文件的设置好用的,不知道是什么原因,请帮
|
|
返回顶楼 | |