溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Hibernate基礎(chǔ)知識有哪些

發(fā)布時(shí)間:2021-12-06 09:15:09 來源:億速云 閱讀:95 作者:iii 欄目:編程語言

這篇文章主要講解了“Hibernate基礎(chǔ)知識有哪些”,文中的講解內(nèi)容簡單清晰,易于學(xué)習(xí)與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“Hibernate基礎(chǔ)知識有哪些”吧!

Hibernate是JDBC的升級版,專用連接數(shù)據(jù)庫。
Hibernate比JDBC簡單使用,不需要輸入很多的連接數(shù)據(jù)庫代碼。提取數(shù)據(jù)庫數(shù)據(jù)也不用循環(huán)提取。使用時(shí)的方法為:

1.新建一個(gè)Java普通項(xiàng)目

2.創(chuàng)建user library 加入三個(gè)地方的jar包:兩個(gè)Hibernate 一個(gè)MYSQL驅(qū)動(dòng)

3.創(chuàng)建Hibernate配置文件,Hibernate.cfg.xml

4.建立實(shí)體類user

5.在Hibernate文件中尋找eg至底部找出user.hbm.xml映射文件,copy到映射文件所在文件中

6.將映射文件user.hbm.xml部分加入到Hibernate.cfg.xml中

7.創(chuàng)建數(shù)據(jù)庫,再利用Hibernate將實(shí)體映射導(dǎo)入到數(shù)據(jù)庫中

根據(jù)主鍵Id得到一個(gè)持久對象,Hibernate中有兩個(gè)方法,一個(gè)get,一個(gè)load,他們兩個(gè)參數(shù)相同,都返回一個(gè)Object

它們的區(qū)別:執(zhí)行g(shù)et方法即時(shí)生成查詢sql去查詢數(shù)據(jù)庫得到相應(yīng)的pojo,如果數(shù)據(jù)庫中沒有相應(yīng)記錄,則返回null執(zhí)行l(wèi)oad方法不會(huì)即時(shí)產(chǎn)生 sql語句,而是在用到返回的對象時(shí)采取查詢數(shù)據(jù)庫,也就是load方法有默認(rèn)的延遲加載,在執(zhí)行l(wèi)oad方法后返回的不是一個(gè)pojo對象,是pojo 對象的一個(gè)代理(據(jù)說Hibernate是用代理的方式實(shí)現(xiàn)延遲加載的,這塊還迷糊),如果數(shù)據(jù)庫中沒有相應(yīng)記錄,load方法會(huì)拋出異常ObjectNotFoundException看了一下我們用MyEclipse Hibernate工具通過數(shù)據(jù)庫生成的DAO類,它的findById方法是用的session.get()方法,這是即時(shí)獲得pojo對象,如果是load方法,在執(zhí)行完load后如果關(guān)閉了session,那在接下來用到這個(gè)pojo對象時(shí)恐怕會(huì)報(bào)session已關(guān)閉的錯(cuò)誤。

還有就是這兩個(gè)方法的第二個(gè)參數(shù)id,它必須是實(shí)現(xiàn)了java.io.Serializable接口,也就是可序列化的。

感謝各位的閱讀,以上就是“Hibernate基礎(chǔ)知識有哪些”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對Hibernate基礎(chǔ)知識有哪些這一問題有了更深刻的體會(huì),具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是億速云,小編將為大家推送更多相關(guān)知識點(diǎn)的文章,歡迎關(guān)注!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI