hibernate 调用存储过程

第一种,传入一个参数,做更新或者删除操作,没有返回值

SQLQuery sqlQuery = this.getSession().createSQLQuery("{call updUser(?)}");
sqlQuery.setInteger(0, 4);
sqlQuery.executeUpdate();

第二种,传入一个参数,做查询操作,返回结果

SQLQuery sqlQuery2 = this.getSession().createSQLQuery("{call getUser(?)}");
sqlQuery2.setInteger(0, 4);
List lst = sqlQuery2.list();


第三种,有传出参数,还有返回参数

CallableStatement statement =SessionFactoryUtils.getDataSource(getSessionFactory()).getConnection().prepareCall("{call getUser(?,?)}");
statement.setInt(1, 4);//传入参数,下标从1开始
statement.registerOutParameter(2, Types.INTEGER);//返回参数
statement.execute();
System.out.println(statement.getObject(2));//得到返回参数的值

你可能感兴趣的:(Hibernate)