您的位置:首页 > 其它

SSH框架的hibernate调用存储过程并拿到存储过程的返回值

2014-07-31 09:12 441 查看
通常使用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;

}

});
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐