一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|JAVA教程|ASP教程|

服務器之家 - 編程語言 - JAVA教程 - 簡介Java的Hibernate框架中的Session和持久化類

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

2020-03-11 13:49goldensun JAVA教程

這篇文章主要介紹了Java的Hibernate框架中的Session和持久化類,Hibernate是Java的SSH三大web開發框架之一,需要的朋友可以參考下

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

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

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

持久性: 可以做一個瞬態的實例持久化通過將它與一個會話相關聯。持久性實例都有一個表示在數據庫中,一個標識符值,與會話相關聯。

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

一個Session實例是可序列化的,如果它的持久化類是可序列化的。一個典型的事務應該使用下面的語句:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
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類:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
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;
  }
}

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 国产高清视频免费最新在线 | 亚洲国产天堂 | 免费高清视频日本 | 希岛爱理aⅴ在线中文字幕 午夜综合网 | 女海盗斯蒂内塔的复仇2免费观看 | 日韩在线 中文字幕 | 99久久伊人精品波多野结衣 | 色五婷婷| 国精视频一区二区视频 | 拍拍叫痛的无挡视频免费 | 热99re久久精品精品免费 | 国内体内she精视频免费 | 国产成人精品免费视频软件 | 奶茶视频有容乃大 | 视频大全在线观看免费 | www.国产一区二区三区 | 日韩欧美一区黑人vs日本人 | 美女污视频 | 国产精品香蕉夜间视频免费播放 | 日本视频免费在线 | 99精品久久精品一区二区 | 国产91在线九色 | 特级毛片免费观看视频 | 日本xxxx69hd| 国产一区二区三区日韩 | 精品一区视频 | 欧美一区二区三区大片 | 99久久综合久中文字幕 | 男人操美女逼视频 | 精品午夜寂寞影院在线观看 | 99在线视频精品费观看视 | 日本人泡妞xxxxxx69 | 国产色司机在线视频免费观看 | 美妇在线| 公交车揉捏大乳呻吟喘娇 | 女子监狱第二季未删减在线看 | 色哟哟在线观看 | 美女操批 | 欧美日韩精品乱国产538 | 国产专区亚洲欧美另类在线 | 国产精品免费_区二区三区观看 |