hibernate的初次使用
轉載地址:http://blog.csdn.net/aboy123/article/details/10222675
一、Hibernate概述
(一)什么是Hibernate?
? ? ? ? ? ?hibernate核心內容是ORM(關系對象模型)。可以將對象自動的生成數據庫中的信息,使得開發更加的面向對象。這樣作為程序員就可以使用面向對象的思想來操作數據庫,而不用關心繁瑣的JDBC。所以,Hibernate處于三層架構中的D層(持久層)。
(二)使用Hibernate的優點
1、Hibernate可以使用在Java的任何項目中,不一定非要使用在Java web項目中。因為Hibernate不需要類似于tomact這些容器的支持,可以直接通過一個main方法進行測試。
2、通過下面的實例,可以發現使用Hibernate可以大大減少代碼量。
3、由于使用了Hibernate,代碼中不涉及具體的JDBC語句,所以就方便了代碼的可移植性。
二、Hibernate開發的環境搭建
(一)Hibernate的環境搭建非常簡單,只需要引入Hibernate核心包(單擊下載)以及Hibernate依賴包(單擊下載)即可。 (二)加入數據庫驅動。下面的例子中主要是采用Mysql數據庫來演示的,所以在這里引入MysqL的JDBC驅動(點擊下載)。 (三)提供核心配置文件hibernate.cfg.xml文件(在src文件夾下即可)。其中的配置如下(針對mysql) [html] view plaincopyprint?三、HIbernate第一個實例
該實例的目錄結構如下 說明:最后一個HIBERNATE3里面包含了所有的需要引用的jar包1、新建一個普通的java項目,按照上面的步驟引入相關的jar包和配置文件
2、建立User實體類 [java] view plaincopyprint?
2、提供User.hbm.xml文件,完成實體類的映射 [html] view plaincopyprint?
3、配置hibernate.cfg.xml文件 [html] view plaincopyprint?
5、向表中添加數據 [java] view plaincopyprint?
執行該java文件就可以完成向表中增加數據了,效果如下
(四)總結
通過上面的代碼我們可以看出,在代碼中沒有涉及到任何有關JDBC的代碼,作為開發人員只需要寫好相應的實體類,然后通過配置就可以實現了表的建立以及向表中實現數據的插入。 在代碼中有許多Hibernate的核心對象,例如Configuration、SessionFactory、Session等等。這些內容將在以后介紹。一、什么是映射
在上一篇文章中?新手上路之Hibernate:第一個Hibernate例子,通過一個例子了解了什么是hibernate。而其中最重要的就是通過User.hbm.xml來配置映射。這里所說的映射就是對象關系映射:將對象數據保存到數據庫中,同時可以將數據庫數據讀入對象中,開發人員只對對象進行操作就可以完成對數據庫數據的操作。
二、什么是基本映射
知道了什么是映射,那么我們先來看一下最基本的映射關系——基本映射,即根據表結構創建相應實體類
例如:還是以MySQL數據庫為例,進行說明。有如下一張表:
建立相應的實體類:User
[java]?view plaincopy
對于Hibernate來說,最重要的就是配置文件,即還需要一個User.hbm.xml文件
[html]?view plaincopy
其他部分的代碼參照上一篇文章即可。
三、建立User實體類的一些原則
? ? ? ?1、實現無參的默認的構造函數
? ? ? ?2、提供一個標識
? ? ? ?3、建議不要使用fianl修飾實體類
? ? ? ?4、建議為實體類生成setter和getter方法
對于第3條建議,如果使用了fianl關鍵字,那么延遲加載(load)將會無效。具體含義將會在下一篇文章中給出實例。
四、HIbernate主鍵生成策略
在上面User.hbm.xml配置文件中有一個標簽:<generator>。它表示的是主鍵生成策略。主鍵生成策略必須配置,用來為該持久化類的實例生成唯一的標識。它有如下幾種策略
? ? uuid: 用一個128-bit的UUID算法生成字符串類型的標識符,這在一個網絡中是唯一的(使用了IP地址),UUID被編碼為一個32位16進制數字的字符串,它的生成是由Hibernate生成,一般不會重復UUID包含:IP地址,JVM的啟動時間,系統時間和一個計算器值。
? ? identity:MySql數據庫中自增長
? ? Sequence:Oracle數據庫自增長
? ? native:根據底層數據庫能力選擇identity、sequence中的一個。
? ? assigned:手動分配主鍵.<generator>沒有指定時的默認生成策略
? ? foreign:使用另外一個相關聯的對象的標示符。通常和<one-to-one>配合使用
五、總結
概括一下Hibernate的基本映射就是: 實體類——對應了——數據庫中表、實體類中的屬性——對應了——表中字段。總結
以上是生活随笔為你收集整理的hibernate的初次使用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C语言判断计算机存储是大端还是小端
- 下一篇: 银河麒麟服务器v10 sp2安装fio磁