使用Hibernate Annotation經(jīng)驗(yàn)總結(jié)
在向大家詳細(xì)介紹使用Hibernate Annotation之前,首先讓大家了解下Hibernate的配置依賴(lài)于外部 XML 文件,然后全面介紹使用Hibernate Annotation。
在過(guò)去幾年里,Hibernate不斷發(fā)展,幾乎成為Java數(shù)據(jù)庫(kù)持久性的事實(shí)標(biāo)準(zhǔn)。它非常強(qiáng)大、靈活,而且具備了優(yōu)異的性能。在本文中,我們將了解如何使用Java 5 注釋來(lái)簡(jiǎn)化Hibernate代碼,并使持久層的編碼過(guò)程變得更為輕松。
傳統(tǒng)上,Hibernate的配置依賴(lài)于外部 XML 文件:數(shù)據(jù)庫(kù)映射被定義為一組 XML 映射文件,并且在啟動(dòng)時(shí)進(jìn)行加載。創(chuàng)建這些映射有很多方法,可以從已有數(shù)據(jù)庫(kù)模式或Java類(lèi)模型中自動(dòng)創(chuàng)建,也可以手工創(chuàng)建。無(wú)論如何,您最終將獲得大量的 Hibernate 映射文件。此外,還可以使用工具,通過(guò)javadoc樣式的注釋生成映射文件,盡管這樣會(huì)給您的構(gòu)建過(guò)程增加一個(gè)步驟。
在最近發(fā)布的幾個(gè)Hibernate版本中,出現(xiàn)了一種基于 Java 5 注釋的更為巧妙的新方法。借助新的 Hibernate Annotation 庫(kù),即可一次性地分配所有舊映射文件——一切都會(huì)按照您的想法來(lái)定義——注釋直接嵌入到您的 Java 類(lèi)中,并提供一種強(qiáng)大及靈活的方法來(lái)聲明持久性映射。籍由自動(dòng)代碼完成和語(yǔ)法突出顯示功能,最近發(fā)布的Java IDE也為其提供了有力的支持。
Hibernate Annotation還支持新的 EJB 3 持久性規(guī)范。這些規(guī)范旨在提供一種標(biāo)準(zhǔn)化的 Java 持久性機(jī)制。由于 Hibernate 3 還提供了一些擴(kuò)展,因此您可以十分輕松地遵從這些標(biāo)準(zhǔn),并使用 EJB 3 編程模型來(lái)對(duì) Hibernate 持久層進(jìn)行編碼。現(xiàn)在,讓我們來(lái)動(dòng)手使用Hibernate Annotation。
要使用Hibernate Annotation,您至少需要具備 Hibernate 3.2和Java 5??梢詮?Hibernate 站點(diǎn) 下載 Hibernate 3.2 和 Hibernate Annotation庫(kù)。除了標(biāo)準(zhǔn)的 Hibernate JAR 和依賴(lài)項(xiàng)之外,您還需要 Hibernate Annotations .jar 文件(hibernate-annotations.jar)、Java 持久性 API (lib/ejb3-persistence.jar)。如果您正在使用 Maven,只需要向 POM 文件添加相應(yīng)的依賴(lài)項(xiàng)即可,如下所示:
- ...
- <dependency>
- <groupId>org.hibernate</groupId>
- <artifactId>hibernate</artifactId>
- <version>3.2.1.ga</version>
- </dependency>
- <dependency>
- <groupId>org.hibernate</groupId>
- <artifactId>hibernate-annotations</artifactId>
- <version>3.2.0.ga</version>
- </dependency>
- <dependency>
- <groupId>javax.persistence</groupId>
- <artifactId>persistence-api</artifactId>
- <version>1.0</version>
- </dependency>
- ...
【編輯推薦】