Question:
引用
我现在在做一个项目需要从两个数据库实例中存取数据在用hibernate实现的过程中该如何配置和处理
如果一个项目要从两个乃至多个数据库实例读取数据该如何处理?
如果只有一个数据库oraA为其建立建立oraAhbmxml以及hibernateproperties文件该文件中的数据库连接部分写为
## Oracle
hibernatedialect netsfhibernatedialectOracleDialect
nnectiondriver_class oraclejdbcdriverOracleDriver
nnectionusername username
nnectionpassword password
nnectionurl jdbc:oracle:thin:@local::ora
如有两个oracle数据库oraA和oraB分别为其建立oraAhbmxml和oraBhbmxml映射文件这样数据库中的各个表和实体持久化类就可以映射好但是hibernateproperties中的数据库配置部分该如何处理呢怎样才能同时连接上两个数据库实例呢?
如果用这个nfigure(File configFile)
configFile可以是不同的配置
通过配置configFile可以得到每个数据库的configuration 也就是可以获得每个数据库实例的session;但是在hibernateproperties文件中怎么写数据库连接部分呢一个数据库的时候写法是nnectionurl jdbc:oracle:thin:@local::ora
那如果有两个数据库实例呢在hibernateproperties文件中怎么处理总不会是写成如下吧
##oracle
hibernatedialect netsfhibernatedialectOracleDialect
nnectiondriver_class oraclejdbcdriverOracleDriver
nnectionusername username
nnectionpassword password
nnectionurl jdbc:oracle:thin:@local::oraA
nnectionusername usernamet
nnectionpassword passwordt
nnectionurl jdbc:oracle:thin:@local::oraB
Answer:
写两个hibernateproperties例如连接oraA的叫做hibernateAproperties连接oraB的叫做hibernateBproperties
hibernateAproperties内容如下
引用
hibernatedialect netsfhibernatedialectOracleDialect
nnectiondriver_class oraclejdbcdriverOracleDriver
nnectionusername username
nnectionpassword password
nnectionurl jdbc:oracle:thin:@local::oraA
hibernateBproperties内容如下
引用
hibernatedialect netsfhibernatedialectOracleDialect
nnectiondriver_class oraclejdbcdriverOracleDriver
nnectionusername usernamet
nnectionpassword passwordt
nnectionurl jdbc:oracle:thin:@local::oraB
程序里面
代码
java代码
Configuration conf_oraA = new Configuration(/hibernateAproperties)addClass()……
Configuration conf_oraB = new Configuration(/hibernateBproperties)addClass()……
SessionFactory sf_oraA = conf_oraAbuildSessionFactory()
SessionFactory sf_oraB = conf_oraBbuildSessionFactory()
Session s_oraA = sf_oraAopenSession()
Session s_oraB = sf_oraBopenSession()
……
更正一下
方案一
写两个hibernatecfgxml
使用数据库a的时候
Configuration cfg_a=new Configuration()configure(hibernatecfg_axml)
使用数据库b的时候
Configuration cfg_b=new Configuration()configure(hibernatecfg_bxml)
usr/home/zk/htdocs/upload_files/images
方案二
使用一个能操作两个数据库的账号在?hbmxml映射文件中的class标签中指定catalog为数据库名