熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Java編程 >> Java開源技術 >> 正文

Hibernate如何配置操作多個數據庫

2013-11-23 20:40:13  來源: Java開源技術 
    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(/hibernateApropertiesaddClass()……
   
    Configuration  conf_oraB  =  new  Configuration(/hibernateBpropertiesaddClass()……
   
    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為數據庫名
From:http://tw.wingwit.com/Article/program/Java/ky/201311/28865.html
  • 上一篇文章:

  • 下一篇文章:
  • 推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.