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();
 
现在还没有找到更好的处理存储过程的方法,有待进一步学习。