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;
}
});
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;
}
});
相关文章推荐
- hibernate调用存储过程及处理返回集合
- SQLServer 中存储过程返回的三种方式( 包括存储过程的创建, 在存储过程中调用, 在VS中调用的方法)
- SQLServer 中存储过程返回的三种方式( 包括存储过程的创建, 在存储过程中调用, 在VS中调用的方法)
- 在一个存储过程中调用返回一个游标的另一个存储过程
- 存储过程调用存储过程,存储过程调用函数,返回表表变量,游标使用
- oracle中存储过程调用存储过程(带有返回结果集)
- C#中的类SqlCommand对象使用方法ExecuteNonQuery()调用SQLServer存储过程时,存储过程执行成功,数据发生改变,但是返回-1
- hibernate中调用存储过程hibernate中调用存储过程
- SQL存储过程中调用存储过程返回的表
- MySQL 存储过程实例 与 ibatis/mybatis/hibernate/jdbc 如何调用存储过程
- SQLServer 中存储过程返回的三种方式( 包括存储过程的创建, 在存储过程中调用, 在VS中调用的方法)
- 基于C#中的类SqlCommand对象调用SQLServer存储过程时,存储过程执行成功,但是对象方法ExecuteNonQuery()返回-1
- 关于在SQLSERVER2000中存储过程调用存储过程返回参数的问题
- sql生成(c#调用存储过程返回数据表)代码的存储过程
- Hibernate3调用带返回参数的mysql存储过程
- 调用存储过程返回DataSet
- 存储过程从入门到熟练(多个存储过程完整实例及调用方法)
- 存储过程从入门到熟练(多个存储过程完整实例及调用方法)[转]
- ASP 调用 Oracle 存储过程返回结果集
- Hibernate 调用无参存储过程