日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
Hibernate schema簡(jiǎn)單分析

Hibernate有很多值得學(xué)習(xí)的地方,這里我們主要介紹Hibernate schema,包括介紹切換Schema等方面。

成都創(chuàng)新互聯(lián)公司-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價(jià)比榮昌網(wǎng)站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫,直接使用。一站式榮昌網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋榮昌地區(qū)。費(fèi)用合理售后完善,十年實(shí)體公司更值得信賴。

Hibernate schema

如果你在調(diào)用Hibernate的時(shí)候需要切換schema怎么辦呢。

在oracle中,不同的用戶,使用不同的schema.在Hibernate的POJO中,會(huì)指定了schema

 
 
 
  1.  version="1.0" encoding="utf-8"?> 
  2. "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"> 
  3.  
  4.  
  5.  name="com.csc.poimanager.dao.Poi" table="POI" schema="P_BEIJING"> 
  6.  name="poiId" type="java.lang.Long"> 
  7.  name="POI_ID" precision="10" scale="0" /> 
  8.  class="increment" /> 
  9.  
  10.  name="cnName" type="java.lang.String"> 
  11.  name="CN_NAME" length="1000" /> 
  12.  
  13.  
  14.  

上面的代碼部分,就指定了Schema.如果在操作的時(shí)候想切換Schema.操作如下:

默認(rèn)的配置POI_BEIJING

上面的映射文件改為:

 
 
 
  1.  version="1.0" encoding="utf-8"?> 
  2. "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"> 
  3.  
  4.  
  5.  name="com.csc.poimanager.dao.Poi" table="POI" > 
  6.  name="poiId" type="java.lang.Long"> 
  7.  name="POI_ID" precision="10" scale="0" /> 
  8.  class="increment" /> 
  9.  
  10.  name="cnName" type="java.lang.String"> 
  11.  name="CN_NAME" length="1000" /> 
  12.  
  13.  
  14.  

在操作的,可以用下面的方法來重新build你的SessionFactory

 
 
 
  1. public static void rebuildSessionFactoryForChangeSchema(String newSchema){  
  2. try {  
  3.  
  4. Properties p = configuration.getProperties();  
  5. System.out.println("---" + p);  
  6. p.put("hibernate.default_schema", newSchema);  
  7. sessionFactory = configuration.buildSessionFactory();  
  8. System.out.println(" change schema successfully ......... ");  
  9. } catch (Exception e) {  
  10. System.err  
  11. .println("%%%% rebuild session factory failed for changing schema %%%%");  
  12. e.printStackTrace();  
  13. }  

如果需要改變Schema,就需要在需要的時(shí)候調(diào)用此方法。

比如在SchemaAction中

 
 
 
  1. HibernateSessionFactory.rebuildSessionFactoryForChangeSchema("POI_SHANGHAI");  
  2.  
  3. System.out.println(" change successfully---");  
  4.  
  5. PoiDAO pd = new PoiDAO();  
  6. Transaction t =pd.getSession().beginTransaction();  
  7.  
  8. pd.save(new Poi("jsfjksdf"));  
  9. t.commit(); 

那么,原來,是向POI_BEIJING中插入數(shù)據(jù)的,變成了向POI_SHANGHAI中插入一條數(shù)據(jù)了。通過這種方法,可以實(shí)現(xiàn)在操作不同的Schema的時(shí)候?qū)崿F(xiàn)切換。

問題:此處改變的是靜態(tài)工廠。所以,會(huì)對(duì)所有的用戶產(chǎn)生影響。如果不想對(duì)所有的用戶改變,那么可以根據(jù)Schema的名稱來取得自己對(duì)應(yīng)的SessionFactoy就可以了。以上介紹Hibernate schema。

【編輯推薦】

  1. 淺析Hibernate orm框架
  2. Hibernate Callback簡(jiǎn)單概括
  3. 概述Hibernate dbcp連接池使用方法
  4. Hibernate Shard三種策略剖析
  5. 討論Hibernate和模型對(duì)象

本文題目:Hibernate schema簡(jiǎn)單分析
瀏覽地址:http://m.5511xx.com/article/cosgogi.html