成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Hibernate實戰的詳細分析

開發 后端
本文從配置環境入手,對Hibernate實戰的詳細分析,見證Hibnate的復雜強大,可以讓你應付復雜的應用

對象關系映射(ObjectRelativeMapping)簡稱ORM,是面向對象開發的一個熱點,用來解決JDBC開發中手動進行OR映射的繁雜與不便。EJB中的實體Bean在這個領域是很著名的——既因為它的先進而著名,也因為它的低效而著名。有過實體Bean開發經驗的人可能都會為實現遠程接口造成的效率低下而頭痛,在很多不大不小的項目中,使用實體Bean是否得不償失,爭論很大。一個輕量級的持久化方案也許能夠解決一些問題,Hibernate應此而生。

Hibernate是一個中間層,它的目的是把數據庫中的關系通過一定的規則映射成為對象,讓Java開發人員不用太多的考慮底層數據庫的問題,只需要像通常情況下管理對象一樣的管理數據。在關系數據庫仍將持續占據市場的情況下,它很可觀。在數據持久化領域,即便是輕量級的方案也會是復雜饒舌的,也許如同周杰倫的音樂一樣不知所云。在學習它之前,最好先回想一下以前進行數據庫開發中遇到的問題和不便,想想為什么需要一個持久化層,才能知道很多操作的目的是什么,以及為什么要這么干,在這個問題上我不想做更多的敘述,因為“長久以來……”這樣的句式通常long(不好意思,打不出來)長,會對我的鍵盤和熱情造成很大的磨損。如果讓我寫一本書,那么我會樂意去敘述什么是數據持久化,它有什么好處等等。廢話少說,來了。

首先需要配置環境,下載Hibernate(www.hibernate.org),把lib下的*.jar添加到classpath,你的數據庫JDBC驅動程序也應該在classpath中。打開hibernate.properties,針對你使用的數據庫,配置相應的信息,比如我使用的是MSSQLServer,配置如下:

##MSSQLServer
hibernate.dialectnet.sf.hibernate.dialect.SQLServerDialect
hibernate.connection.driver_classcom.microsoft.jdbc.sqlserver.SQLServerDriver
hibernate.connection.urljdbc:microsoft:sqlserver://localhost:1433;DatabaseName=zizz
hibernate.connection.usernamesa
hibernate.connection.password

其中很大部分是已經寫好的,只需要取掉注釋即可,我自己只是修改了數據庫名稱、帳號、密碼。建立一個名為zizz的數據庫備用。

然后把這個文件拷貝到你的應用的根目錄下。

我們談論了很多次映射,在Hibernate實戰中應該首先來看看這個映射是如何完成的。假設一個最簡單的應用,寫一個功能最單一的留言板,設計的數據有留言的編號、留言者名稱、留言內容,還有留言時間。足夠簡單吧,換做是你打算怎么干?我猜你要首先建立一個數據庫表格,名字也許叫做guestbook。No,這不是面向對象的方式,不妨首先從對象的角度來考慮。我們當然希望每一條留言都以對象的方式呈現,每個對象應該具有的屬性有:id、author、content、time。偷個懶,沒有畫UML。下面這個類應該是很容易理解的:

//GuestBook.java
packageorg.bromon.zizz;
importjava.util.*;
publicclassGuestBook
{
privateintid;
privateStringauthor;
privateStringcontent;
privateCalendartime;
privatevoidsetId(intid)
{
this.id=id;
}
publicintgetId()
{
return(id);
}
publicvoidsetAuthor(Stringauthor)
{
this.author=author;
}
publicStringgetAuthro()
{
return(author);
}
publicvoidsetContent(Stringcontent)
{
this.content=content;
}
publicStringgetContent()
{
return(content);
}
publicvoidsetTime(Calendartime)
{
this.time=time;
}
publicCalendargetTime()
{
return(time);
}
}

基本上是Hibernate實戰中最簡單的Bean了,如果覺得困難的話,請你先回火星等我。

需要注意的是setId方法被指定為private,這是因為我希望用這個字段做主鍵,它最好由系統自動生成,所以不應該由用戶來指定,這個方法專為Hibernate準備,所以是私有的。

如何把這個類與數據庫映射起來?看看Hibernate的魔法,使用一個XML文件來描述,它應該被命名為GuestBook.hbm.xml:


"-//Hibernate/HibernateMappingDTD2.0//EN"
"'target=_blank>http://hibernate.sourceforge.net/hibernate-mapping-2.0.dtd">









雖然有點陌生,但是很易讀,仔細琢磨一下。

下面來編寫我們的應用,它的功能是插入數據:

//Operate.java
packageorg.bromon.zizz;
importnet.sf.hibernate.*;
importnet.sf.hibernate.cfg.*;
importnet.sf.hibernate.tool.hbm2ddl.*;
importjava.util.*;
publicclassOperate
{
publicstaticvoidmain(Stringargs[])
{
try
{
Configurationcfg=newConfiguration().addClass(GuestBook.class);
SessionFactorysessions=cfg.buildSessionFactory();
newSchemaExport(cfg).create(true,true);
Sessionsession=sessions.openSession();
GuestBookgb=newGuestBook();
gb.setAuthor(“Bromon”);
gb.setContent(“留言的內容”);
gb.setTime(Calendar.getInstance());
Transactionts=session.beginTransaction();
session.save(gb);
ts.commit();
session.close();
}catch(Exceptione)
{
System.out.println(e);
}
}
}
編譯吧:javac–d.*.java
執行一下:javaorg.bromon.zizz.Operate

到數據庫里面看看,表格已經建立好了,并且數據也已經保存。如果把

newSchemaExport().create(true,true);

注釋掉,那么系統不會創建表格,而只是在已有的表格中添加新的記錄,當然,如果表格不存在的話,會產生異常。

你已經看到了Hibernate實戰神奇魔法的5%,它足夠的復雜強大,可以讓你應付復雜的應用,不過今天還是到此為止吧。

【編輯推薦】

  1. Hibernate查詢方法與緩存的關系
  2. Hibernate多表查詢結果處理
  3. Hibernate連接池配置實例
  4. Hibernate下載和安裝
  5. Hibernate中的Cache管理
責任編輯:張攀 來源: CSDN博客
相關推薦

2009-09-25 14:23:39

2009-09-28 10:39:01

Hibernate基礎

2009-12-03 17:41:40

PHP應用發展

2021-10-25 19:52:52

IntentFilte

2009-09-14 13:50:35

LINQ編程模型

2009-09-08 15:56:50

Linq使用Group

2010-01-06 13:50:37

.NET Framew

2009-11-20 13:11:44

Oracle XML數

2010-04-26 18:17:19

Oracle存儲過程

2009-09-09 09:48:43

Linq延遲加載

2009-09-14 16:21:34

LINQ To XML

2009-10-10 13:52:57

VB Update方法

2010-03-08 17:18:46

Linux du命令

2010-04-12 10:53:07

Oracle SQL

2010-04-26 14:32:21

Oracle SQL

2010-07-02 11:19:31

IP協議頭格式

2009-09-07 14:18:01

C#內存管理

2009-09-09 13:53:21

Linq表值函數

2009-03-24 09:17:58

驅動GSMAndroid

2009-10-28 10:06:29

VB.NET With
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 久久中文网| 久久精品国产久精国产 | 国产综合精品 | 情侣av | 国产精品自产拍在线观看蜜 | 蜜桃一区二区三区 | 精品videossex高潮汇编 | 久久精品欧美一区二区三区不卡 | 国产精品视频综合 | 欧美日韩福利 | 二区在线视频 | 亚洲视频在线一区 | 亚洲一区久久 | 一区二区三区在线播放 | 青草福利| 欧美中文字幕一区二区三区亚洲 | 二区成人 | 一区在线视频 | 男人阁久久 | 91在线精品视频 | 日韩在线播放中文字幕 | 久久久九九| 福利片在线看 | 欧美日本免费 | 亚洲免费大片 | 成人午夜免费网站 | 欧美视频成人 | 美女激情av | 在线中文视频 | 中文字幕在线播放第一页 | 91国内外精品自在线播放 | 欧美日韩在线播放 | 亚欧午夜 | 久久精品视频免费观看 | 天天草天天操 | 精品一区在线 | 91精品久久久 | 精品二区| 日韩在线不卡 | 精品av| 成人网av |