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

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

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

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

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

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

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

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

一個(gè)Session實(shí)例是可序列化的,如果它的持久化類是可序列化的。一個(gè)典型的事務(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ù)必須回滾,會(huì)話必須被丟棄。

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

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

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

所有類應(yīng)該包含為了讓容易識(shí)別對(duì)象內(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)一個(gè)給定的對(duì)象是一個(gè)普通的Java對(duì)象,而不是一個(gè)特殊的對(duì)象,好更不是Enterprise JavaBean。

一個(gè)簡單的POJO例子:
基于上面提到的一些規(guī)則,我們可以如下定義一個(gè)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實(shí)戰(zhàn)項(xiàng)目之校園跑腿管理系統(tǒng)的實(shí)現(xiàn)

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

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

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

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

    Eclipse Web項(xiàng)目打成war包的方法圖解

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

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

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

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

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

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

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

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

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

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

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

    Spring?BeanDefinition收集過程示例詳解

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

    Apache?Log4j2?報(bào)核彈級(jí)漏洞快速修復(fù)方法

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

最新評(píng)論