通常使用SQLQuery,但是不成功。
return getHibernateTemplate().execute(new HibernateCallback() {
@Override
public Object doInHibernate(Session session)
{
try {
session.createQuery(arg0)SQLQuery sqlQuery = session.createSQLQuery("{CALL s_setRegRest(?,?)}");
sqlQuery.setString(0, rests.getRestPwd());
sqlQuery.setString(1, rests.getRestName());
List list = sqlQuery.list();
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
});
这个方法拿不到存储过程里返回声明的变量,报错说找不到这一列。之后改用JDBC方式成功,
return getHibernateTemplate().execute(new HibernateCallback() {
@Override
public Object doInHibernate(Session session)
{
try {
Connection conn = session.connection();
ResultSet rs =null;
CallableStatement sqlQuery = conn.prepareCall("{CALL s_setRegRest(?,?)}");
sqlQuery.setString(1, rests.getRestPwd());
sqlQuery.setString(2, rests.getRestName());
rs = sqlQuery.executeQuery();
while(rs.next()){
System.out.println(rs.getString(1));
System.out.println(rs.getString(2));
System.out.println(rs.getString(3));
}
rs.close();
session.close();
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
});