//调用存储过程带参
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