欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

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

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

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

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

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

一個Session實例是可序列化的,如果它的持久化類是可序列化的。一個典型的事務(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類需要一個默認的構(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的,或者說聲明的所有公共方法的接口的實現(xiàn)。

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

POJO名稱用于強調(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)文章

  • Java實戰(zhàn)項目之校園跑腿管理系統(tǒng)的實現(xiàn)

    Java實戰(zhàn)項目之校園跑腿管理系統(tǒng)的實現(xiàn)

    只有理論是不夠的,只有在實戰(zhàn)中才能獲得能力的提升,本篇文章手把手帶你用java+Springboot+vue+maven+elementui+mysql實現(xiàn)一個校園跑腿管理系統(tǒng),大家可以在過程中查缺補漏,提升水平
    2022-01-01
  • Spring @Cacheable redis異常不影響正常業(yè)務(wù)方案

    Spring @Cacheable redis異常不影響正常業(yè)務(wù)方案

    這篇文章主要介紹了Spring @Cacheable redis異常不影響正常業(yè)務(wù)方案,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-02-02
  • Eclipse Web項目打成war包的方法圖解

    Eclipse Web項目打成war包的方法圖解

    當(dāng)Tomcat啟動后該壓縮文件自動解壓縮,war包方便了web工程的發(fā)布,那么Eclipse中如何將Web項目打成war包呢?下面小編通過圖文并茂的方式給大家講解下Eclipse Web項目打成war包的方法,一起看看吧
    2016-08-08
  • RestTemplate實現(xiàn)多種底層HTTP客戶端類庫的切換用法

    RestTemplate實現(xiàn)多種底層HTTP客戶端類庫的切換用法

    這篇文章主要為大家詳細的講解了RestTemplate實現(xiàn)多種底層HTTP客戶端類庫的切換示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助祝大家多多進步
    2022-03-03
  • Java狀態(tài)機的一種優(yōu)雅寫法分享

    Java狀態(tài)機的一種優(yōu)雅寫法分享

    狀態(tài)機是一種數(shù)學(xué)模型,對于我們業(yè)務(wù)實現(xiàn)有很大的幫助。我們可以用非常多的方法實現(xiàn)狀態(tài)機,這篇文章就來介紹一個狀態(tài)機優(yōu)雅的實現(xiàn)方法,希望對大家有所幫助
    2023-04-04
  • SpringBoot應(yīng)用War包形式部署到外部Tomcat的方法

    SpringBoot應(yīng)用War包形式部署到外部Tomcat的方法

    這篇文章主要介紹了SpringBoot應(yīng)用War包形式部署到外部Tomcat的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-08-08
  • Java如何實現(xiàn)樹的同構(gòu)?

    Java如何實現(xiàn)樹的同構(gòu)?

    今天給大家?guī)淼氖顷P(guān)于Java的相關(guān)知識,文章圍繞著Java如何實現(xiàn)樹的同構(gòu)展開,文中有非常詳細的介紹及代碼示例,需要的朋友可以參考下
    2021-06-06
  • 怎樣使用PowerMockito 測試靜態(tài)方法

    怎樣使用PowerMockito 測試靜態(tài)方法

    這篇文章主要介紹了使用PowerMockito 測試靜態(tài)的方法,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-07-07
  • Spring?BeanDefinition收集過程示例詳解

    Spring?BeanDefinition收集過程示例詳解

    這篇文章主要為大家介紹了Spring?BeanDefinition收集過程示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-08-08
  • Apache?Log4j2?報核彈級漏洞快速修復(fù)方法

    Apache?Log4j2?報核彈級漏洞快速修復(fù)方法

    Apache?Log4j2?是一個基于Java的日志記錄工具,是?Log4j?的升級,是目前最優(yōu)秀的?Java日志框架之一,這篇文章主要介紹了突發(fā)Apache?Log4j2?報核彈級漏洞快速修復(fù)方法,需要的朋友可以參考下
    2021-12-12

最新評論