亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

Hibernate入門04-Hibernate中Java對象的三種狀態

2019-11-14 15:09:45
字體:
來源:轉載
供稿:網友

 

目錄:(后續不斷更新...)

  1. Hibernate 入門 01 - 框架技術 (介紹Hibernate框架的發展由來)
  2. Hibernate 入門 02 - Hibernate介紹及其環境搭建
  3. Hibernate 入門 03 - 使用Hibernate完成持久化操作
  4. Hibernate 入門 04 - Hibernate中java對象的三種狀態

 

  

 ▁▃▅ Hibernate中Java對象的三種狀態▅▃▁

 

 

 

1. Java對象的三種狀態

  當應用通過調用Hibernate API與框架發生交互時,需要從持久化的角度關注應用對象的生命周期。

  持久化聲明周期是Hibernate中的一個關鍵概念,正確地理解生命周期,可以更好地了解Hibernate的實現原理,掌握Hibernate的正確用法。

  Hibernate框架通過session來管理Java對象的狀態,在持久化生命周期中,Java對象存在著如下三種狀態:

 

  • 瞬時狀態(Transient)

  通過new創建對象后,對象并沒有like持久化,它并未與數據庫中的數據有任何關聯,此時Java對象的狀態為瞬時狀態。

  Session對于瞬時狀態的Java對象是一無所知的,當對象不再被其他對象引用時,它的所有數據也就丟失了,對象將會被Java虛擬機按照垃圾回收機制處理。

  • 持久狀態(Persistent)

  當對象與Session關聯,被Session管理時,它就處于持久狀態。處于持久狀態的對象擁有數據庫標識(數據庫中的主鍵值)。

  那么,對象是什么時候與Session發生關聯的呢?有兩種方法:

    第一種,通過Sesison的查詢接口,或者get()方法,或者load()方法從數據庫中加載對象的時候,加載的對象是與數據庫表中的一條記錄關聯的,此時對象與加載它的Session發生關聯;

    第二種,瞬時狀態的對象,通過Session的save()方法或SaveOrUpdate()方法時,Java對象也與Session發生關聯。

  對于處于持久狀態的對象,Session會持續跟蹤和管理它們,如果對象的內部狀態發生了任何變更,Hibernate會選擇合適的時機(如事務提交時)將變更固化到數據庫中。

  • 游離狀態

  處于持久狀態的對象,脫離與其關聯的nSession的管理后,對象就處于游離狀態。

  處于游離狀態的對象,Session無法保證對象所包含的數據與數據庫中的記錄一直,因為Hibernate已經無法感知對該對象的任何操作。

  Session提供了兩個方法(update()、merge()),將處于游離狀態的對象,與一個新的Session發生關聯。

  此時,對象的狀態就從游離狀態重新轉換為持久狀態。

 

 

 

 

 

2. 三種狀態之間的轉換

  在Hibernate應用中,不同的持久化操作會導致對象狀態的改變。如圖描述了對象狀態的轉換:

 

  使用new關鍵字構建對象,該對象的狀態是瞬時狀態。

2.1 瞬時狀態轉為持久狀態

  使用Session對象的save()或saveOrUpdate()方法保存對象后,該對象的狀態由瞬時狀態轉換為持久狀態。

  使用Session對象的get()或load()方法獲取對象,該對象的狀態是持久狀態。

2.2 持久狀態轉為瞬時狀態

  執行Session對象的delete()方法后,對象由原來的持久狀態變為瞬時狀態,因為此時該對象沒有與任何的數據庫數據關聯。

2.3 持久狀態轉為游離狀態

  吃行了Session對象的evict()、clear()或close()方法,對象由原來的持久狀態轉為游離狀態。

2.4 游離狀態轉為持久狀態

  重新獲取Session對象,執行Session對象的update()或saveOrUpdate()方法,對象由游離狀態轉為持久狀態,該對象再次與Session對象相關聯。

2.5 游離狀態轉為瞬時狀態

  執行Session對象的delete()方法,對象由游離狀態轉為瞬時狀態。

  處于瞬時狀態或游離狀態的對象不再被其他對象引用時,會被Java虛擬機按照垃圾回收機制處理。

 

 

 

 

3. 練習(好記性不如爛鍵盤) - 輸出對象的狀態

  需求:為以下兩段代碼補充語句,輸出各個階段對象的狀態。

  代碼1:

 1 try{ 2     // 省略部分代碼... 3     session = sessionFactory.openSession(); 4     tx = session.beginTransaction();    // 開始一個事務 5     User user = (User)session.load(User.class, new Integer("1001"));    // 獲取用戶對象 6     user.setUsername("張董");    // 修改用戶信息 7     tx.commit();    // 提交事務 8 }catch(HibernateException e){ 9     e.PRintStackTrace();10     tx.rollback();    // 回滾事務11 }finally{12     if(null != session){13         session.close();    // 關閉session14     }15 }

  代碼2:

 1 try{ 2     // 省略部分代碼 3     session = sessionFactory.openSession();    // 打開session 4     tx = session.beginTransaction();    // 開始一個事務 5     User user = (User)session.load(User.class, new Integer("1000"));    // 獲取User對象 6     session.delete(user);    // 持久化操作 - 刪除 7     tx.commit();    // 提交事務 8 }catch(HibernateException e){ 9     e.printStackTrace();10     tx.rollback();    // 回滾事務11 }finally{12     if(null != session){13         session.close();    // 關閉session14     }15 }

 


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲新声在线观看| 俺去啦;欧美日韩| 国产98色在线| 久久精品国产久精国产一老狼| 久久在精品线影院精品国产| 国产日韩av高清| 亚洲自拍偷拍色片视频| 97热在线精品视频在线观看| 日韩少妇与小伙激情| 一本色道久久综合狠狠躁篇的优点| 亚洲国产欧美日韩精品| 亚洲欧美日韩精品久久| 日韩大胆人体377p| 国外成人在线直播| xxx欧美精品| 日韩精品极品在线观看播放免费视频| 91在线视频成人| 国产精品xxxxx| 麻豆国产精品va在线观看不卡| 91精品国产91久久久久久不卡| 日韩美女av在线免费观看| 最近日韩中文字幕中文| 亚洲欧洲视频在线| 国产97人人超碰caoprom| 亚洲国产精品久久91精品| 欧美激情精品久久久| 欧美日韩国产一区二区三区| 国产成人极品视频| 91久久久久久久| 在线精品国产成人综合| 亚洲黄色www网站| 国产精品69久久| 亚洲性生活视频在线观看| 96sao精品视频在线观看| 欧美一级免费视频| 久久久久久久久久久成人| 精品久久久久久久久久国产| 欧美激情videoshd| 亚洲精品久久久久久久久久久久| 欧美激情xxxxx| yellow中文字幕久久| 亚洲国产成人精品久久| 色先锋久久影院av| 青青草原成人在线视频| 国产日韩精品一区二区| 亚洲深夜福利在线| 色小说视频一区| 91精品久久久久久久久久久久久| 久久激情视频免费观看| 久久99热精品这里久久精品| 91精品国产91久久久久久吃药| 久久精品亚洲国产| 日韩国产中文字幕| 97精品视频在线播放| 狠狠躁夜夜躁人人爽超碰91| 成人激情在线观看| 国产精品69久久| 国产精品国产福利国产秒拍| 精品日本美女福利在线观看| 亚洲аv电影天堂网| 4p变态网欧美系列| 亚洲三级av在线| 国产va免费精品高清在线| 欧美久久精品午夜青青大伊人| 国产精品91久久| 欧美一乱一性一交一视频| 国产美女精品视频| 国产97人人超碰caoprom| 国产精品jvid在线观看蜜臀| 亚洲色图偷窥自拍| 欧美成人亚洲成人| 97国产精品久久| y97精品国产97久久久久久| 精品国产乱码久久久久久婷婷| 海角国产乱辈乱精品视频| 亚洲护士老师的毛茸茸最新章节| 国产精品一区二区在线| 久久久999成人| 欧美精品国产精品日韩精品| 成人国产精品色哟哟| 91av在线免费观看| 国产精品一区av| 91亚洲国产成人久久精品网站| 欧美精品aaa| 91av在线看| 久久亚洲精品中文字幕冲田杏梨| 人九九综合九九宗合| 亚洲天堂网在线观看| 成人中文字幕+乱码+中文字幕| 欧美在线一级视频| 亚洲一级免费视频| 神马久久桃色视频| 欧美黄色免费网站| 亚洲乱码一区av黑人高潮| 精品国产1区2区| 91免费视频网站| 色哟哟网站入口亚洲精品| 色妞色视频一区二区三区四区| 亚洲福利在线看| 日韩激情av在线免费观看| 国产欧美精品va在线观看| 亚洲国产一区二区三区在线观看| 欧美激情在线一区| 成人a级免费视频| 欧美电影电视剧在线观看| 成人午夜高潮视频| 57pao成人国产永久免费| 在线电影欧美日韩一区二区私密| 久久成人精品视频| 国产亚洲精品va在线观看| 亚洲精品免费一区二区三区| 国产精品久久久久久av| 亚洲国产精彩中文乱码av在线播放| 日韩在线观看免费高清| 国产精品久久久久久婷婷天堂| 精品在线欧美视频| 国产一区二区三区18| 国产亚洲精品久久久久动| 日韩亚洲欧美中文在线| 欧美另类老女人| 中文字幕欧美在线| 97精品欧美一区二区三区| 亚洲娇小xxxx欧美娇小| 亚洲а∨天堂久久精品9966| 日产精品久久久一区二区福利| 成人国产精品av| 久久6免费高清热精品| 久久久精品国产| 久久激情视频久久| 欧美精品videos性欧美| 国产精品美腿一区在线看| 日韩精品在线视频| 日韩欧美中文字幕在线观看| …久久精品99久久香蕉国产| 久久99精品久久久久久琪琪| 8090理伦午夜在线电影| 国产精品视频永久免费播放| 久久亚洲国产精品成人av秋霞| 91丨九色丨国产在线| 亚洲一区二区在线| 日韩精品免费在线视频| 国产在线精品成人一区二区三区| 亚洲欧洲国产伦综合| 国产精品一区二区女厕厕| 欧美日韩黄色大片| 久久精品视频播放| 欧美亚洲国产视频| 成人国产亚洲精品a区天堂华泰| 久久视频在线免费观看| 亚洲摸下面视频| 欧美在线观看网址综合| 国产日韩综合一区二区性色av| 日韩av在线网页| 91欧美精品午夜性色福利在线| 亚洲精品日韩av| 日韩精品999| 久久人人看视频| 亚洲人a成www在线影院| 午夜精品蜜臀一区二区三区免费| 欧美激情奇米色| 另类少妇人与禽zozz0性伦| 97精品久久久中文字幕免费| 日韩av中文字幕在线免费观看| 亚洲日本成人女熟在线观看|