日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢(xún)
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷(xiāo)解決方案
Hibernate查詢(xún)語(yǔ)句統(tǒng)一配置管理

你以前所參與的項(xiàng)目里面,SQL、HQL,是否滿天飛呢?在邏輯層,顯示層那里都可以看到隨手寫(xiě)的Hibernate查詢(xún)語(yǔ)句?這樣的做法極度的破壞了分層的架構(gòu),無(wú)論如何的XP也應(yīng)該遵循一定的管理與規(guī)范,那么統(tǒng)一管理查詢(xún)語(yǔ)句的重要性就凸現(xiàn)了。

成都創(chuàng)新互聯(lián)公司成立與2013年,先為雞東等服務(wù)建站,雞東等地企業(yè),進(jìn)行企業(yè)商務(wù)咨詢(xún)服務(wù)。為雞東企業(yè)網(wǎng)站制作PC+手機(jī)+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問(wèn)題。

統(tǒng)一管理查詢(xún)語(yǔ)句有何優(yōu)點(diǎn)?

1、保持系統(tǒng)的分層架構(gòu),管理語(yǔ)句是持久層的責(zé)任,由它自己管理是最適合不過(guò)。松散的耦合總是我們向往的目標(biāo)。

2、統(tǒng)一管理方便修改,可以減小人手修改帶來(lái)的低級(jí)錯(cuò)誤。

OK,接下來(lái)要考慮如何管理這些語(yǔ)句來(lái)了。

1、配置文件管理

在Hibernate查詢(xún)語(yǔ)句的mapping文件內(nèi)使用 

Xml代碼

 
 
 
  1.       
  2.      from User eo where eo.id = ?      
  3.    
  4.  
  5.    
  6.      from User eo where eo.id = ?   
  7.       里面就是要使用的hql語(yǔ)句 屬性name就是語(yǔ)句保存在容器里的別名。  
  8.  
  9.       
  10.  
  11.       在hibernate的mapping文件內(nèi)使用     
  12.  
  13. Xml代碼   
  14.       
  15.            
  16.                SELECT user.id AS {user.id},      
  17.                             user.name AS {user.name}      
  18.                FROM t_user user WHERE user.name = ?      
  19.    
  20.  
  21.    
  22.         
  23.                SELECT user.id AS {user.id},   
  24.                             user.name AS {user.name}   
  25.                FROM t_user user WHERE user.name = ?   
  26.  

里面的語(yǔ)句必須是sql語(yǔ)句,屬性name就是語(yǔ)句保存在容器里的別名,里面的東東標(biāo)明了返回對(duì)象的類(lèi)型與別名,別名主要用于對(duì)應(yīng)sql里面{}的內(nèi)容。

寫(xiě)好mapping文件后當(dāng)然要告訴hibernate將這些語(yǔ)句加入到容器里面咯,配置方法有很多種,這里只列了使用spring結(jié)合hibernate的配置方式,在SessionFactoryBean的配置里面加入 

Xml代碼

 
 
 
  1.       
  2.              
  3.                  
  4.                 classpath:hbm/name-query.hbm.xml      
  5.                  
  6.            
  7.    
  8.  
  9.    
  10.           
  11.               
  12.                 classpath:hbm/name-query.hbm.xml   
  13.               
  14.         
  15.  

的使用比較復(fù)雜,所以不是遇到復(fù)雜的跨表查詢(xún)時(shí),不推薦使用。

2、標(biāo)簽管理

Hibernate查詢(xún)語(yǔ)句中,一般的習(xí)慣都是使用@NamedQueries將與自己相關(guān)的語(yǔ)句統(tǒng)一在實(shí)體里面,如查詢(xún)User的語(yǔ)句都是放到User對(duì)象里面

Java代碼

 
 
 
  1. @Entity    
  2. @Table(name = "t_user")      
  3. @Cache(usage = CacheConcurrencyStrategy.READ_WRITE) @NamedQueries( {      
  4.        @NamedQuery(name = "User.findById",      
  5.                query = "FROM User eo where eo.id=? ") })      
  6. public class User implements java.io.Serializable {      
  7.                      
  8.                 private int id;      
  9.               
  10.                 private String name;   
  11.  
  12. @Entity 
  13. @Table(name = "t_user")   
  14. @Cache(usage = CacheConcurrencyStrategy.READ_WRITE) @NamedQueries( {   
  15.        @NamedQuery(name = "User.findById",   
  16.                query = "FROM User eo where eo.id=? ") })   
  17. public class User implements java.io.Serializable {   
  18.                   
  19.                 private int id;   
  20.            
  21.                 private String name; 

使用標(biāo)簽管理可以比較好的分類(lèi)Hibernate查詢(xún)語(yǔ)句,也不用搞麻煩的配置文件,雖然說(shuō)修改配置文件的Hibernate查詢(xún)語(yǔ)句可以不用重新編譯就能生效,但是查詢(xún)語(yǔ)句修改也不會(huì)十分頻繁,所以標(biāo)簽管理是一個(gè)不錯(cuò)的選擇。


當(dāng)前名稱(chēng):Hibernate查詢(xún)語(yǔ)句統(tǒng)一配置管理
文章鏈接:http://www.5511xx.com/article/cdiijph.html