hibernate的語(yǔ)言特點(diǎn)
hibernate的語(yǔ)言特點(diǎn)
Hibernate是一個(gè)開(kāi)放源代碼的對(duì)象關(guān)系映射框架,它對(duì)JDBC進(jìn)行了非常輕量級(jí)的對(duì)象封裝,它將POJO與數(shù)據(jù)庫(kù)表建立映射關(guān)系,是一個(gè)全自動(dòng)的orm框架,下面就讓學(xué)習(xí)啦小編來(lái)給你科普一下什么是hibernate。
hibernate的編程開(kāi)發(fā)
編程環(huán)境
Hibernate是一個(gè)以LGPL(Lesser GNU Public License)許可證形式發(fā)布的開(kāi)源項(xiàng)目。在Hibernate官網(wǎng)上有下載Hibernate包的說(shuō)明。Hibernate包以源代碼或者二進(jìn)制的形式提供。
編程工具
Eclipse:一個(gè)開(kāi)放源
代碼的、基于Java的可擴(kuò)展開(kāi)發(fā)平臺(tái)。
NetBeans:開(kāi)放源碼的Java集成開(kāi)發(fā)環(huán)境,適用于各種客戶機(jī)和Web應(yīng)用。
IntelliJ IDEA:在代碼自動(dòng)提示、代碼分析等方面的具有很好的功能。
MyEclipse:由Genuitec公司開(kāi)發(fā)的一款商業(yè)化軟件,是應(yīng)用比較廣泛的Java應(yīng)用程序集成開(kāi)發(fā)環(huán)境。
EditPlus:如果正確配置Java的編譯器“Javac”以及解釋器“Java”后,可直接使用EditPlus編譯執(zhí)行Java程序。
hibernate的語(yǔ)言特點(diǎn)
將對(duì)數(shù)據(jù)庫(kù)的操作轉(zhuǎn)換為對(duì)象Java對(duì)象的操作,從而簡(jiǎn)化開(kāi)發(fā)。通過(guò)修改一個(gè)“持久化”對(duì)象的屬性從而修改數(shù)據(jù)庫(kù)表中對(duì)應(yīng)的記錄數(shù)據(jù)。
提供線程和進(jìn)程兩個(gè)級(jí)別的緩存提升應(yīng)用程序性能。
有豐富的映射方式將Java對(duì)象之間的關(guān)系轉(zhuǎn)換為數(shù)據(jù)庫(kù)表之間的關(guān)系。
屏蔽不同數(shù)據(jù)庫(kù)實(shí)現(xiàn)之間的差異。在Hibernate中只需要通過(guò)“方言”的形式指定當(dāng)前使用的數(shù)據(jù)庫(kù),就可以根據(jù)底層數(shù)據(jù)庫(kù)的實(shí)際情況生成適合的SQL語(yǔ)句。
非侵入式:Hibernate不要求持久化類實(shí)現(xiàn)任何接口或繼承任何類,POJO即可。
hibernate的核心API
Hibernate的API一共有6個(gè),分別為:Session、SessionFactory、Transaction、Query、Criteria和Configuration。通過(guò)這些接口,可以對(duì)持久化對(duì)象進(jìn)行存取、事務(wù)控制。
Session
Session接口負(fù)責(zé)執(zhí)行被持久化對(duì)象的CRUD操作(CRUD的任務(wù)是完成與數(shù)據(jù)庫(kù)的交流,包含了很多常見(jiàn)的SQL語(yǔ)句)。但需要注意的是Session對(duì)象是非線程安全的。同時(shí),Hibernate的session不同于JSP應(yīng)用中的HttpSession。這里當(dāng)使用session這個(gè)術(shù)語(yǔ)時(shí),其實(shí)指的是Hibernate中的session,而以后會(huì)將HttpSession對(duì)象稱為用戶session。
SessionFactory
SessionFactory接口負(fù)責(zé)初始化Hibernate。它充當(dāng)數(shù)據(jù)存儲(chǔ)源的代理,并負(fù)責(zé)創(chuàng)建Session對(duì)象。這里用到了工廠模式。需要注意的是SessionFactory并不是輕量級(jí)的,因?yàn)橐话闱闆r下,一個(gè)項(xiàng)目通常只需要一個(gè)SessionFactory就夠,當(dāng)需要操作多個(gè)數(shù)據(jù)庫(kù)時(shí),可以為每個(gè)數(shù)據(jù)庫(kù)指定一個(gè)SessionFactory。
Transaction
Transaction 接口是一個(gè)可選的API,可以選擇不使用這個(gè)接口,取而代之的是Hibernate 的設(shè)計(jì)者自己寫的底層事務(wù)處理代碼。 Transaction 接口是對(duì)實(shí)際事務(wù)實(shí)現(xiàn)的一個(gè)抽象,這些實(shí)現(xiàn)包括JDBC的事務(wù)、JTA 中的UserTransaction、甚至可以是CORBA 事務(wù)。之所以這樣設(shè)計(jì)是能讓開(kāi)發(fā)者能夠使用一個(gè)統(tǒng)一事務(wù)的操作界面,使得自己的項(xiàng)目可以在不同的環(huán)境和容器之間方便地移植。
Query
Query接口讓你方便地對(duì)數(shù)據(jù)庫(kù)及持久對(duì)象進(jìn)行查詢,它可以有兩種表達(dá)方式:HQL語(yǔ)言或本地?cái)?shù)據(jù)庫(kù)的SQL語(yǔ)句。Query經(jīng)常被用來(lái)綁定查詢參數(shù)、限制查詢記錄數(shù)量,并最終執(zhí)行查詢操作。
Criteria
Criteria接口與Query接口非常類似,允許創(chuàng)建并執(zhí)行面向?qū)ο蟮臉?biāo)準(zhǔn)化查詢。值得注意的是Criteria接口也是輕量級(jí)的,它不能在Session之外使用。
Configuration
Configuration 類的作用是對(duì)Hibernate 進(jìn)行配置,以及對(duì)它進(jìn)行啟動(dòng)。在Hibernate 的啟動(dòng)過(guò)程中,Configuration 類的實(shí)例首先定位映射文檔的位置,讀取這些配置,然后創(chuàng)建一個(gè)SessionFactory對(duì)象。雖然Configuration 類在整個(gè)Hibernate 項(xiàng)目中只扮演著一個(gè)很小的角色,但它是啟動(dòng)hibernate 時(shí)所遇到的第一個(gè)對(duì)象。
hibernate的版本
Hibernate版本
Hibernate版本更新速度很快,目前為止有多個(gè)階段性的版本:Hibernate3,Hibernate4和Hibernate5,這一點(diǎn)程序員從其Jar文件名便可以看出來(lái)。目前最新發(fā)布的版本是Hibernate ORM 5.2.4.Final Released。
Hibernate2系列的最高版本是Hibernate2.1.8,Hibernate3系列的最高版本是hibernate-distribution-3.6.10.Final-dist版,但使用較多且較穩(wěn)定的版本是Hibernate 3.1.3或Hibernate 3.1.2。
另外,自Hibernate3發(fā)布以來(lái),其產(chǎn)品線愈加成熟,相繼出現(xiàn)了Hibernate注釋、Hibernate實(shí)體管理器、Hibernate插件工具等一系列產(chǎn)品套件。在方便程序員使用Hibernate進(jìn)行應(yīng)用程序的開(kāi)發(fā)的同時(shí),也逐漸增強(qiáng)了Hibernate產(chǎn)品線的實(shí)力。
目前Hibernate已經(jīng)出現(xiàn)了4.0以及5.0的版本
看過(guò)“hibernate的語(yǔ)言特點(diǎn)”的人還看了: