1 存储过程
create or replace procedure p_proc
is
begin
insert into testTable (id,name,age) values(seq_getid.nextval,'tiger','25');
end 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();
}
}
{
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();
st.setString(1,key);
st.execute();
本文介绍了如何使用Hibernate框架调用数据库存储过程,并提供了具体的代码示例。包括创建存储过程及通过Connection对象执行的过程。
207

被折叠的 条评论
为什么被折叠?



