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

首頁 > 學院 > 開發設計 > 正文

Java項目中使用Hibernate處理數據

2019-11-18 11:11:55
字體:
來源:轉載
供稿:網友

  對象-關系映射(O/R映射)是許多軟件開發項目的常見需求。數據持久化過程中所涉及到的活動是非常乏味且易于出錯的。假如考慮到不可避免的需求變化,我們就面臨很大的麻煩:數據存儲結構必須與源代碼保持同步。再加上移植性問題,事情就變得非常復雜。

  而Hibernate可以幫助我們輕松地在永久性存儲介質中保存數據,而不需要在選擇存儲、安裝或配置類型方面浪費太多精力。Hibernate答應我們存儲任何類型的對象,因此,應用程序不需要知道其數據將使用Hibernate進行持久化。當然,這里提到的任何事情都可以逆向應用:現在從存儲器獲取已經預備好的對象是很平常的事情。更新和刪除數據也是如此。

  開始之前

  在開始之前,您需要Hibernate的發行版,可以在Hibernate web站點(www.hibernate.org)上找到它。我們將使用2.0.3版本。對于數據庫,我們將使用Hypersonic SQL 1.7.1版本,它可以在hsqldb.sourceforge.net上找到。 Hibernate還支持許多開源或商業數據庫,例如MySQL、PostgreSQL、Oracle、DB2等。對于受支持的任何數據庫,安裝這個教程都很簡單。完整列表參見官方文檔。

  注重:假如您不希望類被持久化在數據庫中(比如說,您只希望進行串行化),那么Hibernate API為您提供了net.sf.hibernate.persister.EntityPersister類和net.sf.hibernate.persister.ClassPersister接口。通過編寫子類或實現它們,您可以編寫自己的持久化類,并根據需要使用它們。

   下載了所有必需的安裝包后,我們必須設置測試環境。基本上,我們所需做的就是把下載的.jar文件放到CLASSPATH中。這包括Hibernate發行版中的hibernate2.jar和Hypersonic的lib/ 目錄下的hsqldb.jar。Hibernate還需要其他的幾個庫,這些庫都可以在<hibernate-dist>/lib目錄中找到。并不是該目錄下的所有.jars文件都需要,但是假如您使用所有文件,也沒有什么壞處。在我們開始研究Hibernate之前,我們將首先定義我們的問題域。

   注重:Hibernate使用Apache的commons-logging。它是一個智能工具,假如找到log4j,它就會默認地使用它。Log4j是一個出色的日志記錄庫,我們將在這個教程中使用它。假如您還沒有這個軟件(您真的應該安裝這個軟件!),可以從Log4j homepage下載,并將它添加到CLASSPATH中。使用Hibernate團隊所提供的示例log4j.PRoperties,它可以在<hibernate-dist>/src目錄下找到。

  問題引入

  每個開發人員都至少執行過一次類似的任務:創建一個訂單,把一些產品放在其中,它就變成訂單項,然后保存該訂單。
我們使用這些簡單的SQL命令來設置數據庫:

CREATE TABLE ORDERS(         ID VARCHAR NOT NULL PRIMARY KEY,         ORDER_DATE TIMESTAMP NOT NULL,         PRICE_TOTAL DOUBLE NOT NULL) CREATE TABLE PRODUCTS(         ID VARCHAR NOT NULL PRIMARY KEY,         NAME VARCHAR NOT NULL,         PRICE DOUBLE NOT NULL,         AMOUNT INTEGER NOT NULL) CREATE TABLE ORDER_ITEMS(         ID VARCHAR NOT NULL PRIMARY KEY,         ORDER_ID VARCHAR NOT NULL,         PRODUCT_ID VARCHAR NOT NULL,         AMOUNT INTEGER NOT NULL,         PRICE DOUBLE NOT NULL) 

  這個數據模型非常簡單。對于一個實際的“生產質量”數據模型,我們會需要外鍵、索引、額外的字段等等。對于本教程,上面的數據模型就可以了。

  java代碼

  盡管這些業務需求簡單且易于理解,但是編寫一堆預備好的語句的傳統方法將很快令人厭煩。而Hibernate將會把我們解放出來。我們所需的只是一組簡單的映射文件。但首先我們需要編寫Java類。

   注重:我們將把所有將要持久化的類放到test.hibernate包中,把所有輔助類放到test包中。

  Product

  這個簡單的類只定義了必要的字段:ID、產品名稱、產品價格和這種產品的當前庫存量。由于Hibernate使用無格式的簡單JavaBeans,我們需要做的只是為每個重要字段(在我們的示例中,所有字段都是重要字段)創建getter和setter方法,以及默認的構造函數。

package test.hibernate; 

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 刚察县| 高邮市| 花垣县| 内乡县| 河南省| 濮阳县| 万源市| 阿瓦提县| 大宁县| 靖江市| 巨野县| 新昌县| 叙永县| 三亚市| 永川市| 清丰县| 汉阴县| 泉州市| 永泰县| 宁武县| 临夏市| 丹江口市| 友谊县| 黄平县| 邢台市| 铅山县| 高唐县| 沐川县| 库车县| 孟连| 美姑县| 英吉沙县| 荥经县| 化德县| 冕宁县| 大同县| 河源市| 银川市| 渝中区| 渝中区| 禹城市|