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

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)識,粗陋之處還請指正。


網(wǎng)頁標(biāo)題:Hibernate存儲過程的調(diào)用
當(dāng)前鏈接:http://m.5511xx.com/article/dhicppo.html