總結Hibernate經(jīng)驗_JSP教程
教程Tag:暫無Tag,歡迎添加,賺取U幣!
推薦:解讀java的命名習慣java的命名習慣: 包(package)名一律小寫; 變量名和方法名:第一單詞小寫,后面的單詞首字母大寫; 類名,接口名:每一個單詞的首字母大寫; 常量名:所有字母大寫.
0、雙向關聯(lián)中最好是設置一端inverse=true,一端inverse=false。一般inverse=false會放在多的一端,即由多的一方來維護關系,并在多的一方設置cascade="save-update",在單的一方設置cascade="all" 。1、使用Hibernate的id generator來生成無業(yè)務意義的主鍵,不使用有業(yè)務含義的字段做主鍵,不使用assigned。
2、使用對象類型(String/Integer/Long/...)來做主鍵,而不使用基礎類型(int/long/...)做主鍵。
3、在用Integer做主鍵時,需設置unsaved-value="0" 而不是null或none,因為在程序中它被默認設置成了0.
4、不使用composite-id來處理復合主鍵的情況,而使用UserType來處理該種情況。 Gavin King并不提倡使用composite-id,如果你不是基于已有的數(shù)據(jù)庫編程,而是重新設計數(shù)據(jù)庫結構,那么建議使用UserType。你可以自定義一個UserType,包括User和Goods,并且在hbm中定義該UserType為unique的,同樣可以達到目的。而這種方式的好處則是不需要你來手工維護id,而由Hibernate自動維護。UserType的使用方法參考手冊5.2.4節(jié)和Hibernate自帶的示例中的net.sf.hibernate.test.DoubleStringType。
5、在使用HQL的地方,結果一般不會受XML中設置的影響。
6、fetch參數(shù)為select方式時先查詢返回要查詢的主體對象(列表),再根據(jù)關聯(lián)外鍵id,每一個對象發(fā)一個select查詢,獲取關聯(lián)的對象,形成n+1次查詢;
而join方式,主體對象和關聯(lián)對象用一句外鍵關聯(lián)的sql同時查詢出來,不會形成多次查詢。
如果你的關聯(lián)對象是延遲加載的,它當然不會去查詢關聯(lián)對象。
另外,在hql查詢中配置文件中設置的join方式是不起作用的
7、使用full join fetch 與 right join fetch是沒有意義的。
8、添加數(shù)據(jù)、刪除、更新操作時,將同時更新二級緩存。這就是Hibernate做批處理的時候效率不高的原因,原來是要維護二級緩存消耗大量時間的緣故
9、unsaved-value 屬性在Hibernate3中幾乎不再需要。
10、單向關聯(lián)更加難于查詢。在大型應用中,幾乎所有的關聯(lián)必須在查詢中可以雙向?qū)Ш健?nbsp;
11、在兩層結構中,把Hibernate Session從JDBC連接中脫離開,下次需要用的時候再連接上。絕不要把一個Session用在多個應用程序事務(Application Transaction)中,否則你的數(shù)據(jù)可能會過期失效。
12、在系統(tǒng)中對性能要求很嚴格的一些部分,某些操作也許直接使用JDBC會更好。但是請先確認這的確是一個瓶頸,并且不要想當然認為JDBC一定會更快。如果確實需要直接使用JDBC,那么最好打開一個 Hibernate Session 然后從 Session獲得connection,按照這種辦法你仍然可以使用同樣的transaction策略和底層的connection provider。
13、當異常發(fā)生的時候,必須要回滾 Transaction ,關閉Session。
14、多對多連接用得好的例子實際上相當少見。大多數(shù)時候你在“連接表”中需要保存額外的信息。這種情況下,用兩個指向中介類的一對多的連接比較好。
15、絕大多數(shù)的查詢并不能從查詢緩存中受益,所以Hibernate默認是不進行查詢緩存的。如若需要進行緩存,請調(diào)用 Query.setCacheable(true)方法。這個調(diào)用會讓查詢在執(zhí)行過程中時先從緩存中查找結果, 并將自己的結果集放到緩存中去。
分享:解析java的==和equals區(qū)別在java中數(shù)據(jù)類型分為兩大類:一類是基本數(shù)據(jù)類型,另一類是引用數(shù)據(jù)類型.其中基本數(shù)據(jù)類型又分為8種分別是:四種整數(shù)類型(byte、short、int、long),兩種浮點數(shù)類型(float、double),一種字符類型(char),一種布爾類型(boolean) 引用數(shù)據(jù)類型也就是我們常說的類了,
相關JSP教程:
- jsp response.sendRedirect不跳轉(zhuǎn)的原因分析及解決
- JSP指令元素(page指令/include指令/taglib指令)復習整理
- JSP腳本元素和注釋復習總結示例
- JSP FusionCharts Free顯示圖表 具體實現(xiàn)
- 網(wǎng)頁模板:關于jsp頁面使用jstl的異常分析
- JSP頁面中文傳遞參數(shù)使用escape編碼
- 基于jsp:included的使用與jsp:param亂碼的解決方法
- Java Web項目中連接Access數(shù)據(jù)庫的配置方法
- JDBC連接Access數(shù)據(jù)庫的幾種方式介紹
- 網(wǎng)站圖片路徑的問題:絕對路徑/虛擬路徑
- (jsp/html)網(wǎng)頁上嵌入播放器(常用播放器代碼整理)
- jsp下顯示中文文件名及絕對路徑下的圖片解決方法
- 相關鏈接:
- 教程說明:
JSP教程-總結Hibernate經(jīng)驗
。