您的位置:首页 > 其它

Hibernate中执行存储过程的方法

2012-04-26 10:21 309 查看
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会话


//pro_getManager是存储过程的名称表示带有两个参数


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


SQLQuery query = session.createSQLQuery(procName);


query.setString(0, "admin");


query.setString(1, "admin");


List list =query.list();




session.close();




HibernateSessionFactory.closeSession();




SQLQuery 接口功能很强大吧
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: