S2SH中如何调用存储过程用的是Hibernate + spring,如何调用数据库的存储过程那?
我在代码中,如果新增加个对象用下面的语句,如果调用存储过程,应该怎么写那?
this.getHibernateTemplate().persist(catbean);假如存储过程为AA,有两个参数。如何调用?
请高人指点一下。

解决方案 »

  1.   

    this.getHibernateTemplate().execute(new HibernateCallback(){
                   public Object doInHibernate(Session session) throws HibernateException,SQLException{
                                String callName = "{call AA(?,?)}";
                                CallableStatement cs = session.connection().prepareCall(callName);
                                cs.setObject(1,xx);
                                cs.setObject(2,yy);
                               cs.execute();
                               cs.close();
                                 return null;
                               
    }
    })
      

  2.   


    这个就可以。
    类似于:
    java.sql.CallableStatement cs=null;
    String sql="{call ?:=get_sal(?)}";
    cs=conn.prepareCall(sql);
    cs.setString(2, ename);
    cs.registerOutParameter(1, Types.DOUBLE);
    cs.execute();
    result=cs.getDouble(1);