在 MySQL 中返回游标

Jav*_*Guy 2 java mysql jdbc

我们如何从 MySQL 存储过程(例程)返回一个游标。或者另一种将值列表从 MySQL Proc 返回给 Java 程序的方法。我们正在尝试在 Oracle 中实现与 Sys Ref Cursor 类似的功能,看起来在 MySQL 中也有类似的东西。但是想知道这是一个非常常见的用例,在 mysql 中获取 proc 返回的值列表的方法应该是什么。

版本 - MySQL-server-5.5.15

小智 5

MySQL:

create procedure get_data(in param1 date)
begin
select * from mytable where mydate=param1;
end;
Run Code Online (Sandbox Code Playgroud)

爪哇:

CallableStatement cstmt = MyConnection.prepareCall("{call mydb.get_data(?)}");
cstmt.setString(1, '2012-01-01');
ResultSet  rs = cstmt.executeQuery();
int nF = rs.getMetaData().getColumnCount();
rs.last();
String[][] out = new String[rs.getRow()][nF];

for (int i=0; i<nF; i++) {
  rs.beforeFirst();
  int n=0;
  while (rs.next()) {
    out[n][i]=rs.getString(i+1);
    n++;
  }
}

cstmt.close();
return out;
Run Code Online (Sandbox Code Playgroud)