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

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

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
簡述Hibernate映射XML文件

學(xué)習(xí)Hibernate時,經(jīng)常會遇到Hibernate映射XML文件問題,這里將介紹Hibernate映射XML文件問題的解決方法。

萬寧網(wǎng)站制作公司哪家好,找創(chuàng)新互聯(lián)!從網(wǎng)頁設(shè)計、網(wǎng)站建設(shè)、微信開發(fā)、APP開發(fā)、響應(yīng)式網(wǎng)站設(shè)計等網(wǎng)站項目制作,到程序開發(fā),運(yùn)營維護(hù)。創(chuàng)新互聯(lián)于2013年成立到現(xiàn)在10年的時間,我們擁有了豐富的建站經(jīng)驗和運(yùn)維經(jīng)驗,來保證我們的工作的順利進(jìn)行。專注于網(wǎng)站建設(shè)就選創(chuàng)新互聯(lián)

在《Hibernate in Action》一書中,提到怎樣從實體Hibernate映射XML文件中加載,先來看下代碼:

 
 
 
  1. Configuration cfg = new Configuration();  
  2. cfg.addResource("hello/Message.hbm.xml");  
  3. cfg.setProperties( System.getProperties() );  
  4. SessionFactory sessions = cfg.buildSessionFactory(); 

這段代碼清晰的說明了從hello包里加載Message實體定義的過程。對于這個例子來說還好,但對那些有多個實體的應(yīng)用來說,就很單一而且容易出錯。不僅映射關(guān)系是硬編碼,還得手工管理每次添加一個新的實體就要更新實體加載的代碼。其實有跟簡單的方法去查找和加載映射關(guān)系以使其與最新的jar文件保持一致。

首先,在你的web服務(wù)器或者企業(yè)服務(wù)器里,映射文件需要放置在類路徑里,這樣Hibernate才能正常的運(yùn)行。這樣做是很有好處的,因為你所需要做的就是使用同樣的jar包和查找相應(yīng)的映射文件的名字。因為你可能會有多個jar文件在你的類路徑里,你需要指定哪個jar包包含了映射文件。

以下就是一種查找映射關(guān)系的方法:

 
 
 
  1. String cp = System.getProperty("java.class.path");  
  2. String jarFile = null;  
  3. List hbmList = null;  
  4.  
  5. String[] cpcparr = cp.split("\\:");  
  6. for(int j=0;j;j++){  
  7. // The following assumes our entities  
  8. // are wrapped up in a jar file  
  9. // called 'dbobjs.jar'  
  10. if(cparr[j].indexOf("dbobjs.jar") != -1)  
  11. jarFile=(cparr[j]);  
  12. }  
  13.  
  14. if(jarFile != null){  
  15. JarFile jar = new JarFile(new File(jarFile));  
  16. Enumeration e = jar.entries();  
  17. if(e.hasMoreElements()){  
  18. hbmList = new ArrayList();  
  19. while(e.hasMoreElements()){  
  20. // Object comes back as JarFile$JarFileEntry  
  21. JarEntry entry = (JarEntry)e.nextElement();  
  22. if(entry.getName().indexOf(".hbm.xml") != -1){  
  23. hbmList.add(entry.getName());  
  24. }  
  25. }  
  26. }else {  
  27. System.out.println("Error: The entity jar dbobjs.
    jar was not found in " +"classpath: " + cp);  
  28. }  

上面的代碼主要完成了以下幾件事情:獲取Java虛擬機(jī)初始化的classpath系統(tǒng)屬性;查找含有實體映射文件的jar包;解析映射文件的名字,最后添加到一個ArrayList對象中去。


分享名稱:簡述Hibernate映射XML文件
鏈接地址:http://www.5511xx.com/article/djjijgi.html