国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計 > 正文

Hibernate 的原理與配置快速入門

2019-11-18 14:24:32
字體:
供稿:網(wǎng)友
Hibernate 的原理與配置快速入門(圖一)  也許你聽說過Hibernate的大名,但可能一直不了解它,也許你一直渴望使用它進(jìn)行開發(fā),那么本文正是你所需要的!在本文中,我向大家重點介紹Hibernate的核心API調(diào)用庫,并講解一下它的基本配置。

  看完本文后,我相信你對什么是ORM(對像/關(guān)系映射)以及它的優(yōu)點會有一個深刻的熟悉,我們先通過一個簡單的例子開始來展現(xiàn)它的威力。

  正如一些傳統(tǒng)的經(jīng)典計算機(jī)文章大都會通過一個“hello,world”的例子開始講解一樣,我們也不例外,我們也將從一個相對簡單的例子來闡述Hibernate的開發(fā)方法,但假如要真正闡述Hibernate的一些重要思想,僅僅靠在屏幕上打印一些字符是遠(yuǎn)遠(yuǎn)不夠的,在我們的示例程序中,我們將創(chuàng)建一些對象,并將其保存在數(shù)據(jù)庫中,然后對它們進(jìn)行更新和查詢。

閱讀導(dǎo)航
“Hello World”“Hello world”示例程序讓您對Hibernate有一個簡單的熟悉理解Hibernate的架構(gòu)介紹Hibernate接口的主要功能。核心接口Hibernate有5個核心接口,通過這幾個接口開發(fā)人員可以存儲和獲得持久對象,并且能夠進(jìn)行事務(wù)控制一個重要的術(shù)語:TypeType是Hibernate發(fā)明者發(fā)明的一個術(shù)語,它在整個構(gòu)架中是一個非?;A(chǔ)、有著強(qiáng)大功能的元素,一個Type對象能將一個java類型映射到數(shù)據(jù)庫中一個表的字段中去。策略接口Hibernate與某些其它開源軟件不同的還有一點――高度的可擴(kuò)展性,這通過它的內(nèi)置策略機(jī)制來實現(xiàn)?;A(chǔ)配置Hibernate可以配置成可在任何Java環(huán)境中運行,一般說來,它通常被用在2-3層的C/S模式的項目中,并被部署在服務(wù)端。創(chuàng)建一個sessionFactory對象要創(chuàng)建一個SessionFactory對象,必須在Hibernate初始化時創(chuàng)建一個Configuration類的實例,并將已寫好的映射文件交由它處理。
“Hello World”

  Hibernate應(yīng)用程序定義了一些持久類,并且定義了這些類與數(shù)據(jù)庫表格的映射關(guān)系。在我們這個“Hello world”示例程序中包含了一個類和一個映射文件。讓我們看看這個簡單的持久類包含有一些什么?映射文件是怎樣定義的?另外,我們該怎樣用Hibernate來操作這個持久類。

  我們這個簡單示例程序的目的是將一些持久類存儲在數(shù)據(jù)庫中,然后從數(shù)據(jù)庫取出來,并將其信息正文顯示給用戶。其中Message正是一個簡單的持久類:,它包含我們要顯示的信息,其源代碼如下:

  列表1 Message.Java 一個簡單的持久類

package hello;
public class Message {
 PRivate Long id;
 private String text;
 private Message nextMessage;
 private Message() {}
 public Message(String text) {
  this.text = text;
 }
 public Long getId() {
  return id;
 }
 private void setId(Long id) {
  this.id = id;
 }
 public String getText() {
  return text;
 }
 public void setText(String text) {
  this.text = text;
 }
 public Message getNextMessage() {
  return nextMessage;
 }
 public void setNextMessage(Message nextMessage) {
  this.nextMessage = nextMessage;
 }
}
  Message類有三個屬性:Message的id 、消息正文、以及一個指向下一條消息的指針。其中id屬性讓我們的應(yīng)用程序能夠唯一的識別這條消息,通常它等同于數(shù)據(jù)庫中的主鍵,假如多個Message類的實例對象擁有相同的id,那它們代表數(shù)據(jù)庫某個表的同一個記錄。在這里我們選擇了長整型作為我們的id值,但這不是必需的。Hibernate答應(yīng)我們使用任意的類型來作為對象的id值,在后面我們會對此作具體描述。

  你可能注重到Message類的代碼類似于JavaBean的代碼風(fēng)格,并且它有一個沒有參數(shù)的構(gòu)造函數(shù),在我們以后的代碼中我將繼續(xù)使用這種風(fēng)格來編寫持久類的代碼。

  Hibernate會自動治理Message類的實例,并通過內(nèi)部機(jī)制使其持久化,但實際上Message對象并沒有實現(xiàn)任何關(guān)于Hibernate的類或接口,因此我們也可以將它作為一個普通的Java類來使用:

Message message = new Message("Hello World");
System.out.println( message.getText() );
  以上這段代碼正是我們所期望的結(jié)果:它打印“hello world”到屏幕上。但這并不是我們的最終目標(biāo);實際上Hibernate與諸如EJB容器這樣的環(huán)境在持久層實現(xiàn)的方式上有很大的不同。我們的持久類(Message類)可以用在與容器無關(guān)的環(huán)境中,不像EJB必須要有EJB容器才能執(zhí)行。為了能更清楚地表現(xiàn)這點,以下代碼將我們的一個新消息保存到數(shù)據(jù)庫中去:



發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 宝坻区| 三江| 南靖县| 岑溪市| 贵州省| 绵竹市| 四平市| 罗江县| 洛南县| 大余县| 南京市| 柏乡县| 浏阳市| 科尔| 合肥市| 建阳市| 南投市| 阿瓦提县| 衡水市| 阿勒泰市| 岳阳市| 太康县| 镇沅| 金秀| 长汀县| 宝坻区| 察雅县| 营口市| 诏安县| 密山市| 绥阳县| 云林县| 台北市| 静安区| 远安县| 东源县| 福州市| 山西省| 定日县| 泽库县| 三江|