程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> What is hibernate?

What is hibernate?

編輯:關於JAVA

主要特性

Hibernate是一個object relational mapping的解決方案和一個持久管理方案或持久層。這樣的解釋可能不能使學習Hibernate的人明白。

你或許可以想象一下你的應用程序有很多功能(業務邏輯),你想把數據存到數據庫裡。當你所有的業務邏輯都用Java對象實現時,數據庫的表卻不是對象。

Hibernate提供了一個映射數據庫表到Java class的解決辦法。它復制數據庫數據到object,也支持把object數據存儲到數據庫。以這種方法就可以使object轉換一個或多個數據庫表。

把數據保存到存儲設備就叫做持久化。復制數據庫表數據到object和從object把數據存進數據庫表就叫做object relational mapping。

為什麼要使用object relational mapping?

更好的系統架構

當你把所有的處理和數據庫訪問都寫進了頁面,這樣你程序就有了很多的缺點。

它重用困難。你在許多地方寫了重復的代碼。使得你在需要更動的時候很難找到所有需要更改的地方。

當你把頁面分成業務邏輯和持久邏輯等部分的時候,你能比較容易地更在其中一部分而不影響其它部分。

減少標准數據庫操作編寫時間

許多數據庫查詢都是簡單的“insert,update,delete”語句。這完全沒有必要開發這些單調乏味的語句。Hibernate幫助你節省了這些時間。

從數據庫加載數據到類類似於以下代碼

Query query = session.createQuery("select b from Bug as b");

for (Iterator iter = query.iterate(); iter.hasNext();) {

bugs.add((Bug) iter.next());

}

return bugs;

保存“bug”類類似於

session.update(bug);

自己難於實現一些高級功能

Hibernate提供的緩存方案(Caching solutions),事務處理(transactions)和其它功能都是不容易實現的。完全沒理由去開發一些已經存在的東西,你僅僅只需要用Hibernate就可以實現上述功能了。

Hibernate是怎麼工作的

我的意見是它比實體bean(entity beans)友好許多,hibernate只從一些簡單的Java類開始(Pojo=Plain Old Java Objects)。

想使用hibernate你要先編寫一個簡單的Java類:

public class Bug

implements Serializable

{

private int hashValue = 0;

private Java.lang.Integer id;

private Java.lang.String title;

public Bug()

{

}

public Bug(Java.lang.Integer fid)

{

this.setId(fid);

}

public Java.lang.Integer getId() {

return id;

}

public void setId(Java.lang.Integer id) {

this.id = id;

}

public Java.lang.String getTitle() {

return title;

}

public void setTitle(Java.lang.String title) {

this.title = title;

}

.............

然後創建一個映射文件。映射文件描述Hibernate如何將類的字段映射到數據庫字段。

public.bug_fid_seq

現在就可以使用hibernate類了。

例如新建一個數據庫實體:

try {

Bug bug = new Bug();

bug.setTitle("Title");

bug.setTuserFk(tuser);

Transaction tx = session.beginTransaction();

session.save(bug);

tx.commit();

} catch (HibernateException e) {

e.printStackTrace();

}

需要創建的描述文件可以用一些工具自動生成,例如MyEclipse。MyEclipse提供了創建類和直接從數據庫表創建描述文件的功能。

Hibernate包括了以下工具:

l 從描述文件生成Java類

l 從現有數據表生成描述文件

l 從描述文件生成數據庫表

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