1 存储过程
create or replace procedure p_proc
is
begin
insert into testTable (id,name,age) values(seq_getid.nextval,'tiger','25');
end p_proc;
2 Hibernate 调用存储过程
public void insertProcedure()
{
Session ses = this.getHibernateTemplate().getSessionFactory().openSession();
try{
Connection conn = ses.connection();
conn.setAutoCommit(false);
String proc="{Call p_proc()}";
CallableStatement st = conn.prepareCall(proc);
st.executeUpdate();
conn.commit();
st.close();
conn.close();
ses.close();
}catch(Exception e){
e.printStackTrace();
}
}
3 总结
Hibernate 调用存储过程要通过Connection对象来做jdbc的操作完成。
要是存储过程中有参数只要作一下简单调整上面的代码:
CallableStatement st = conn.prepareCall("{CALL p_proc(?)}");
st.setString(1,key);
st.execute();
现在还没有找到更好的处理存储过程的方法,有待进一步学习。
本文转自 yuwenhu 51CTO博客,原文链接:http://blog.51cto.com/yuwenhu/151399,如需转载请自行联系原作者