hibernate里如何调用存储过程

hibernate里怎么调用存储过程Session session HibernateSessionFactory.getSession() Connection cons

hibernate里怎么调用存储过程

Session session = HibernateSessionFactory.getSession(); Connection con=session.connection();   //一定要有 String procedure = "{call Rtest(?,?,?)}";  CallableStatement cstmt = null;  ResultSet rs = null; try {      cstmt = con.prepareCall(procedure);  //调用存储过程     //hibernate中一般问号都是从0开始的,但是sql里是从1开始的     cstmt.setString(1,"2007-9-1");     cstmt.setString(2,"2007-9-17");  //存储过程里的参数是datetime类型,sql可以自动把String类型转换但是必须是数据库中要的格式 2007/9/7,2007-9-1 都可以     cstmt.setString(3,"230102");    rs = cstmt.executeQuery();   //执行         while(rs.next()){        System.out.println(rs.getInt(2));  //读取    } }finally {     session.close();             //关闭session }