您的位置:首页 > 编程语言 > Java开发

java 调用存储过程【转】

2009-10-16 10:21 423 查看
//调用存储过程带参
CallableStatement ca = conn.prepareCall("{call Login (?,?)}");
ca.setString(1,username);
ca.setString(2,password);
ca.execute();

// 调用有一个out参数的存储过程

CallableStatement ca = conn.prepareCall("{call Login (?,?,?)}");
ca.setString(1,username);
ca.setString(2,password);
ca.registerOutParameter(3,java.sql.Types.INTEGER);
ca.execute();
int returnOut = ca.getInt(3);

//调用oracle函数,带有一个out参数

CallableStatement ca = conn.prepareCall("{?=call Login (?,?,?)}");

ca.registerOutParameter(1,java.sql.Types.INTEGER); // 对应call前面的 ?
ca.setString(2,username);
ca.setString(3,password);

ca.registerOutParameter(4,java.sql.Types.VARCHAR); // 对应 out 参数
ca.execute();
int returnOut = ca.getInt(1); // return value

String ret = ca.getString(4); // out value

//调用存储过程返回两个结果集
CallableStatement ca = conn.prepareCall("{call Login (?,?,?)}");
ca.setString(1,username);
ca.setString(2,password);
ca.execute();

ResultSet rs = ca.getResultSet();
while(rs.next())
{
System.out.println(rs.getInt(1)+rs.getString(2));
}
if(ca.getMoreResults())
{
rs = ca.getResultSet();
while (rs.next()) {
System.out.println(rs.getInt(1) + rs.getString(2));
}

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/fenghu89/archive/2008/01/21/2057619.aspx
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: