我们如何从 MySQL 存储过程(例程)返回游标。或者从 MySQL Proc 将值列表返回给 Java 程序的另一种方法。我们正在尝试在 Oracle 中实现与 Sys Ref Cursor 类似的功能,并且看起来在 MySQL 中也有类似的东西。但想知道这是一个非常常见的用例,在 mysql 中获取 proc 返回的值列表的方法应该是什么。
版本 - MySQL-server-5.5.15
最佳答案
MySQL:
create procedure get_data(in param1 date)
begin
select * from mytable where mydate=param1;
end;
Java:
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;
关于java - 在 MySQL 中返回游标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7491921/