程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> 簡介Java的Hibernate框架中的Session和耐久化類

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

編輯:關於JAVA

簡介Java的Hibernate框架中的Session和耐久化類。本站提示廣大學習愛好者:(簡介Java的Hibernate框架中的Session和耐久化類)文章只能為提供參考,不一定能成為您想要的結果。以下是簡介Java的Hibernate框架中的Session和耐久化類正文


Session
Session對象用於獲得與數據庫的物理銜接。 Session對象是分量輕,設計了一個互動是須要與數據庫每次被實例化。耐久化對象被保留,並經由過程一個Session對象中檢索。

會話中的對象不該該堅持開放很長一段時光,由於他們平日不被線程平安的,他們應當被創立並依據須要摧毀他們。此次會議的重要功效是供給創立,讀取和刪除操作映照的實體類的實例。實例中能夠存在以下三種狀況之一在給准時間點:

長久性: 耐久化類的未預會話相干聯,並在數據庫中沒有代表性,沒有標識值的新實例被Hibernate以為是臨時的。

耐久性: 可以做一個瞬態的實例耐久化經由過程將它與一個會話相干聯。耐久性實例都有一個表現在數據庫中,一個標識符值,預會話相干聯。

自力性: 一旦我們封閉Hibernate的Session,耐久化實例將成為一個分別的實例。

一個Session實例是可序列化的,假如它的耐久化類是可序列化的。一個典范的事務應當應用上面的語句:

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拋出異常,事務必需回滾,會話必需被拋棄。

耐久化類
Hibernate的全部概念是采用從Java類屬性的值,並將耐久到數據庫表。一個映照文件Hibernate的贊助肯定若何從拉動類的值,並將它們映照與表和相干的域。

其對象或實例將存儲在數據庫表中的Java類在Hibernate中稱為耐久化類。 Hibernate的後果最好,假如這些類遵守一些簡略的規矩,也稱為通俗Java對象(POJO)編程模子。有以下耐久化類的重要規矩,然則,這些規矩其實不是必須的。

將一切的耐久化Java類須要一個默許的結構函數。

一切類應當包括為了讓輕易辨認對象內Hibernate和數據庫的ID。此屬性映照到數據庫表的主鍵列。

一切屬性將被耐久化應當聲明為private,並已在JavaBean作風的界說的getXXX和setXXX辦法。

Hibernate的症結功效,署理,取決於耐久化類或許長短final的,或許說聲明的一切公共辦法的接口的完成。

一切的類不擴大或完成的EJB框架須要停止一些專門的類和接口。

POJO稱號用於強調一個給定的對象是一個通俗的Java對象,而不是一個特別的對象,好更不是Enterprise JavaBean。

一個簡略的POJO例子:
基於下面提到的一些規矩,我們可以以下界說一個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;
  }
}

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved