文章出處:
http://www.diybl.com/course/3_program/java/javajs/2008324/106036.html
hibernate3.0以上提供了兩種方式執行存儲過程。
第一種 :用JDBC方式(獲得 Connection 對象)
Session session =HibernateSessionFactory.getSession(); //獲取hibernate會話

Connection conn = session.connection(); // 用session對象獲取連接

ResultSet rs =null;

try

{
CallableStatement call = conn.prepareCall("{Call pro_getManager(?,?)}");

call.setString(1, "admin");
call.setString(2, "admin");
rs = call.executeQuery();

}
catch (Exception e)

{
e.printStackTrace();
}finally

{

rs.close();//關閉
session.close();//關閉連接
HibernateSessionFactory.closeSession(); //關閉會話
}

這種方式本人感覺與hibernate結合不很緊密,還難以控制,還要自己控制關閉
第二種: 用hibernate中SQLQuery 接口執行,其實與執行sql沒有兩樣。
Session session =HibernateSessionFactory.getSession(); //獲取hibernate會話

String procName="{Call pro_getManager(?,?) }";

SQLQuery query = session.createSQLQuery(proc);
query.setString(0, "admin");
query.setString(1, "admin");
List list =query.list();

session.close();

HibernateSessionFactory.closeSession();

SQLQuery 接口功能很強大吧
posted on 2008-10-04 22:13
黃小二 閱讀(1257)
評論(3) 編輯 收藏 所屬分類:
S/S2SH