這篇文章主要介紹了Hibernate持久化類怎么用,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。
創(chuàng)新互聯建站是專業(yè)的瓊山網站建設公司,瓊山接單;提供成都做網站、網站制作、成都外貿網站建設,網頁設計,網站設計,建網站,PHP網站建設等專業(yè)做網站服務;采用PHP框架,可快速的進行瓊山網站開發(fā)網頁制作和功能擴展;專業(yè)做搜索引擎喜愛的網站,專業(yè)的做網站團隊,希望更多企業(yè)前來合作!
Hibernate持久化類使用的是JavaBean的風格,為要被訪問的屬性提供了一套get和set方法,這兩個方法也叫做Hibernate持久化類的訪問方法.記得曾經在接觸JavaBean 的時候我很迷糊,總覺得提供這兩個方法,倒不如把Bean的屬性設置public,然后直接調用對象.屬性,這樣來的方便.但是后來,有一個這樣的需求, 就是一個人名字可以被查看,但是不可以修改.這個時候如果用set方法的話,只需要把set方法的修飾符換為private就OK了.如果是用對象.屬性的形式調用就麻煩了。
而且最重要的一個有點是JavaBean的風格可以簡化Hibernate通過JAVA反射機制來獲得Hibernate持久化類的訪問方法的過程,至于JAVA的反射機制我也是了解一些皮毛.據說很深奧.有興趣的朋友可以Google一下.有一點值得注意,就是JAVA應用程序不能訪問JavaBean持久化類的private類型的get,set方法.而Hibernate沒有這個限制,可以訪問所有的級別.包括private default,protected,public.
Java有8種基本類型:byte,short,char,int,long,float,double,boolean,還有8種與之對應的包裝類型,Byte,Short,Character,Integer,Long,Float,Double,Boolean包裝類型就是把基本類型包裝成對象的意思.基本類型于包裝類型之間可以方便的轉換,例如:
int i = 0; Integer ie = new Integer(i); //基本類型轉換成包裝類型 i = ie.intValue(); //包裝類型轉化成基本類型
注意,直接轉換也是可以的.例如i = ie; JAVA會自動把包裝類型轉換成基本類型.或者ie = i; JAVA會自動把基本類型轉換成包裝類型.在Hibernate持久化類中,既可以把屬性定義為基本類型,也可以定義為包裝類型,他們對應的Hibernate映射類型int和Integer都對應int類型,這個表示不是很明顯,在用JAVA對象類型字符串舉例String,數據庫是varhcar(50),在hibernate的*.hbm.xml 映射文件里一律寫為string。
其實使用基本類型或者包裝類型來定義Hibernate持久化類中的屬性是各有優(yōu)缺點的.基本類型就是使用方便,簡單,在需要數字運算的時候直接可以運算.而包裝類型就要麻煩的先轉換成基本類型,然后在進行運算,但是包裝類型的優(yōu)點在于能表達null值,每一個包裝類型的對象創(chuàng)建的時候默認值都是null類型的.而基本類型是不可以表達null的,它們的默認值是0.為什么要表達null值呢.因為SQL中.所有類型的數據,默認值都是 null的。
當進入insert的時候,沒有復值的屬性,默認值就是null,所以說JAVA的包裝類型和數據庫之間的對應關系更直接.這里建議Hibernate的OID設置為包裝類型,其他的屬性就根據業(yè)務需要和個人習慣來定吧.
Hibernate在初始化階段會根據映射文件的信息,為所有的Hibernate持久化類預定義insert語句,update語句where ID,delete語句where ID,select語句where ID,這里所說的語句就是標準的SQL增,刪,改,查.語句,參數用?代表JDBC PreparedStatement中的參數,這里就不舉例了.這些SQL語句都存放在SessionFactory的緩存中,當執(zhí)行Session的 save(),update(),delete(),load()方法時,將會從SessionFactory的緩存中讀取這些預定義的SQL語句,在把具體的參數值綁定到SQL語句中,這就是Hibernate的基本原理.在默認的情況下這些語句表達的是所有的字段.當然Hibernate還允許我們在映射文件里控制insert和update語句的內容。
比如在映射文件中
2)
3)
4)
5)
6)
7)
Hibernate生成動態(tài)SQL語句的消耗的系統(tǒng)資源(比如CPU,內存等)是很小的,所以不會影響到系統(tǒng)的性能,如果表中包含N多字段,建議把dynamic- update屬性和insert屬性設置為true,這樣在插入和修改數據的時候,語句中只包括要插入或者修改的字段.可以節(jié)省SQL語句的執(zhí)行時間,提高程序的運行效率.
感謝你能夠認真閱讀完這篇文章,希望小編分享的“Hibernate持久化類怎么用”這篇文章對大家有幫助,同時也希望大家多多支持創(chuàng)新互聯,關注創(chuàng)新互聯行業(yè)資訊頻道,更多相關知識等著你來學習!