日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

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

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
Hibernate存儲過程的調(diào)用

下邊是簡單的Hibernate存儲過程

Java代碼:

 
 
 
  1. create   PROCEDURE  proc()   
  2.  begin   
  3.     select   *   from  proctab;   
  4.  end ;   create   PROCEDURE  proc()
  5.  begin
  6.     select   *   from  proctab;
  7.  end ; 

Hibernate存儲過程調(diào)用的一種方法是通過Hibernate傳統(tǒng)的xml映射方式去調(diào)用。

Java代碼:

 
 
 
  1. <class name="com.test.User" table="proctab">   
  2.            
  3.             class="native"/>   
  4.            
  5.            
  6.            
  7. class>   
  8.       
  9.      <return alias="user" class="com.test.User">   
  10.      <return-property name="id" column="id" />   
  11.      <return-property name="name" column="name" />   
  12.      <return-property name="age" column="age" />   
  13.      return>   
  14.      {call proc()}   
  15.      
  16. <class name="com.test.User" table="proctab">
  17.         
  18.             class="native"/>
  19.         
  20.         
  21.         
  22. class>
  23.    
  24.      <return alias="user" class="com.test.User">
  25.      <return-property name="id" column="id" />
  26.      <return-property name="name" column="name" />
  27.      <return-property name="age" column="age" />
  28.      return>
  29.      {call proc()}
  30.    

調(diào)用方法 Java代碼:

 
 
 
  1. Session ss= HibernateSessionFactory.getSession()   
  2. List li=ss.getNamedQuery("getUser").list();   
  3. ss.close();  
  4.         Session ss= HibernateSessionFactory.getSession()
  5.         List li=ss.getNamedQuery("getUser").list();
  6.         ss.close();

及其類似jdbc的方法 Java代碼:

 
 
 
  1. Session session =HibernateSessionFactory.getSession();    
  2. Connection conn = session.connection();    
  3. ResultSet rs =null;   
  4. CallableStatement call = conn.prepareCall("{Call proc()}");   
  5. rs = call.executeQuery();   
  6. rs.close();   
  7. session.close();  
  8. Session session =HibernateSessionFactory.getSession(); 
  9. Connection conn = session.connection(); 
  10. ResultSet rs =null;
  11. CallableStatement call = conn.prepareCall("{Call proc()}");
  12. rs = call.executeQuery();
  13. rs.close();
  14. session.close();

這種方法基本上就是jdbc,不過很簡單,總是感覺怪怪的~還有就是通過強大的createSQLQuery來實現(xiàn),o(∩_∩)o...哈哈  個人比較喜歡這種方法

Java代碼:

 
 
 
  1. Session session =HibernateSessionFactory.getSession();    
  2. SQLQuery query = session.createSQLQuery("{Call proc()}");   
  3. List list =query.list();   
  4. session.close();  
  5. Session session =HibernateSessionFactory.getSession(); 
  6. SQLQuery query = session.createSQLQuery("{Call proc()}");
  7. List list =query.list();
  8. session.close();

如果沒有返回值 直接用execute的方法就可以了,(*^__^*)  忘了一個重要的問題就是Hibernate存儲過程的傳參問題

Java代碼:

 
 
 
  1. CallableStatement call = conn.prepareCall("{Call proc(?)}");   
  2. call.setString(1, 參數(shù));   
  3. rs = call.executeQuery();  
  4. CallableStatement call = conn.prepareCall("{Call proc(?)}");
  5. call.setString(1, 參數(shù));
  6. rs = call.executeQuery();

Java代碼:

 
 
 
  1. SQLQuery query = session.createSQLQuery("{Call proc(?)}");   
  2. query.setString(0, 參數(shù));   
  3. List list =query.list();  

以上便是對Hibernate存儲過程調(diào)用的認(rèn)識,粗陋之處還請指正。


分享文章:Hibernate存儲過程的調(diào)用
文章來源:http://www.dlmjj.cn/article/dhicppo.html