最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

簡介Java的Hibernate框架中的Session和持久化類

 更新時間:2015年12月15日 08:49:36   投稿:goldensun  
這篇文章主要介紹了Java的Hibernate框架中的Session和持久化類,Hibernate是Java的SSH三大web開發(fā)框架之一,需要的朋友可以參考下

Session
Session對象用于獲取與數(shù)據(jù)庫的物理連接。 Session對象是重量輕,設(shè)計(jì)了一個互動是需要與數(shù)據(jù)庫每次被實(shí)例化。持久化對象被保存,并通過一個Session對象中檢索。

會話中的對象不應(yīng)該保持開放很長一段時間,因?yàn)樗麄兺ǔ2槐痪€程安全的,他們應(yīng)該被創(chuàng)建并根據(jù)需要摧毀他們。這次會議的主要功能是提供創(chuàng)建,讀取和刪除操作映射的實(shí)體類的實(shí)例。實(shí)例中可能存在以下三種狀態(tài)之一在給定時間點(diǎn):

短暫性: 持久化類的未與會話相關(guān)聯(lián),并在數(shù)據(jù)庫中沒有代表性,沒有標(biāo)識值的新實(shí)例被Hibernate認(rèn)為是暫時的。

持久性: 可以做一個瞬態(tài)的實(shí)例持久化通過將它與一個會話相關(guān)聯(lián)。持久性實(shí)例都有一個表示在數(shù)據(jù)庫中,一個標(biāo)識符值,與會話相關(guān)聯(lián)。

獨(dú)立性: 一旦我們關(guān)閉Hibernate的Session,持久化實(shí)例將成為一個分離的實(shí)例。

一個Session實(shí)例是可序列化的,如果它的持久化類是可序列化的。一個典型的事務(wù)應(yīng)該使用下面的語句:

Session session = factory.openSession();
Transaction tx = null;
try {
  tx = session.beginTransaction();
  // do some work
  ...
  tx.commit();
}
catch (Exception e) {
  if (tx!=null) tx.rollback();
  e.printStackTrace(); 
}finally {
  session.close();
}

如果Session拋出異常,事務(wù)必須回滾,會話必須被丟棄。

持久化類
Hibernate的整個概念是采取從Java類屬性的值,并將持久到數(shù)據(jù)庫表。一個映射文件Hibernate的幫助確定如何從拉動類的值,并將它們映射與表和相關(guān)的域。

其對象或?qū)嵗龑⒋鎯υ跀?shù)據(jù)庫表中的Java類在Hibernate中稱為持久化類。 Hibernate的效果最好,如果這些類遵循一些簡單的規(guī)則,也稱為普通Java對象(POJO)編程模型。有下列持久化類的主要規(guī)則,但是,這些規(guī)則并不是必需的。

將所有的持久化Java類需要一個默認(rèn)的構(gòu)造函數(shù)。

所有類應(yīng)該包含為了讓容易識別對象內(nèi)Hibernate和數(shù)據(jù)庫的ID。此屬性映射到數(shù)據(jù)庫表的主鍵列。

所有屬性將被持久化應(yīng)該聲明為private,并已在JavaBean風(fēng)格的定義的getXXX和setXXX方法。

Hibernate的關(guān)鍵功能,代理,取決于持久化類或者是非final的,或者說聲明的所有公共方法的接口的實(shí)現(xiàn)。

所有的類不擴(kuò)展或?qū)崿F(xiàn)的EJB框架需要進(jìn)行一些專門的類和接口。

POJO名稱用于強(qiáng)調(diào)一個給定的對象是一個普通的Java對象,而不是一個特殊的對象,好更不是Enterprise JavaBean。

一個簡單的POJO例子:
基于上面提到的一些規(guī)則,我們可以如下定義一個POJO類:

public class Employee {
  private int id;
  private String firstName; 
  private String lastName;  
  private int salary; 

  public Employee() {}
  public Employee(String fname, String lname, int salary) {
   this.firstName = fname;
   this.lastName = lname;
   this.salary = salary;
  }
  public int getId() {
   return id;
  }
  public void setId( int id ) {
   this.id = id;
  }
  public String getFirstName() {
   return firstName;
  }
  public void setFirstName( String first_name ) {
   this.firstName = first_name;
  }
  public String getLastName() {
   return lastName;
  }
  public void setLastName( String last_name ) {
   this.lastName = last_name;
  }
  public int getSalary() {
   return salary;
  }
  public void setSalary( int salary ) {
   this.salary = salary;
  }
}

相關(guān)文章

  • maven之packaging標(biāo)簽的使用

    maven之packaging標(biāo)簽的使用

    這篇文章主要介紹了maven之packaging標(biāo)簽的使用,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-12-12
  • Flink作業(yè)Task運(yùn)行源碼解析

    Flink作業(yè)Task運(yùn)行源碼解析

    這篇文章主要為大家介紹了Flink作業(yè)Task運(yùn)行源碼解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-12-12
  • 實(shí)現(xiàn)一個簡單Dubbo完整過程詳解

    實(shí)現(xiàn)一個簡單Dubbo完整過程詳解

    這篇文章主要為大家介紹了實(shí)現(xiàn)一個簡單Dubbo完整過程詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-07-07
  • c#和java base64不一致的解決方法

    c#和java base64不一致的解決方法

    最近非常郁悶的處理這個base64的問題,同樣的一個圖片文件,在java和c#進(jìn)行base64編碼后結(jié)果不一樣,苦惱了很久,下面這篇文章主要給大家介紹了關(guān)于c#和java base64不一致的解決方法,需要的朋友可以參考下
    2018-11-11
  • Spring RestTemplate具體使用詳解

    Spring RestTemplate具體使用詳解

    這篇文章主要介紹了Spring RestTemplate具體使用詳解,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-04-04
  • 詳解Java接口的相關(guān)知識

    詳解Java接口的相關(guān)知識

    今天給大家?guī)淼氖顷P(guān)于Java基礎(chǔ)的相關(guān)知識,文章圍繞著Java接口展開,文中有非常詳細(xì)的介紹及代碼示例,需要的朋友可以參考下
    2021-06-06
  • SpringBoot使用Sa-Token實(shí)現(xiàn)賬號封禁、分類封禁、階梯封禁的示例代碼

    SpringBoot使用Sa-Token實(shí)現(xiàn)賬號封禁、分類封禁、階梯封禁的示例代碼

    本文主要介紹了SpringBoot使用Sa-Token實(shí)現(xiàn)賬號封禁、分類封禁、階梯封禁的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-07-07
  • 詳解Java中LinkedStack鏈棧的實(shí)現(xiàn)

    詳解Java中LinkedStack鏈棧的實(shí)現(xiàn)

    這篇文章主要為大家詳細(xì)介紹了Java中LinkedStack鏈棧的相關(guān)知識,文中的示例代碼講解詳細(xì),對我們學(xué)習(xí)Java有一定幫助,需要的可以參考一下
    2022-11-11
  • Java設(shè)計(jì)模式中的組合模式

    Java設(shè)計(jì)模式中的組合模式

    這篇文章主要介紹了Java設(shè)計(jì)模式中的組合模式,組合模式依據(jù)樹形結(jié)構(gòu)來組合對象,用來表示部分以及整體層次,種類型的設(shè)計(jì)模式屬于結(jié)構(gòu)型模式
    2022-07-07
  • SpringBoot整合Mybatis-Plus實(shí)現(xiàn)微信注冊登錄的示例代碼

    SpringBoot整合Mybatis-Plus實(shí)現(xiàn)微信注冊登錄的示例代碼

    微信是不可或缺的通訊工具,本文主要介紹了SpringBoot整合Mybatis-Plus實(shí)現(xiàn)微信注冊登錄的示例代碼,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的可以了解一下
    2024-02-02

最新評論

溧阳市| 霍城县| 祁门县| 罗平县| 绍兴市| 临洮县| 东山县| 甘肃省| 房山区| 大悟县| 班玛县| 平顶山市| 镇原县| 武冈市| 金坛市| 鱼台县| 中牟县| 习水县| 荃湾区| 宜章县| 丘北县| 双桥区| 饶阳县| 广饶县| 镇巴县| 庄浪县| 甘孜县| 富锦市| 大渡口区| 西乌| 平武县| 两当县| 修水县| 都兰县| 孟津县| 大埔县| 涞源县| 宁城县| 广水市| 晋宁县| 香格里拉县|