java - 在 MySQL 中返回游标

标签 java mysql jdbc

我们如何从 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/

相关文章:

php - MySQL:如果表中不存在变量,如何回显文本?

mysql - 如何: Select from MYSQL text field type only the numbers that start with 89 using REGEXP?

mysql - Matlab 数据库工具箱 - 警告 : com. mysql.jdbc.Connection@6e544a45 不可序列化

java - 引发异常 [com.mysql.jdbc.CommunicationsException : Communications link failure due to underlying exception:

java - 在 GitHub 页面上嵌入 Java Applet

java - 使用 apache tomcat 7 进行 LDAP(JNDI 领域)身份验证

java - 如何将 slf4j 记录到 cuba Framework 中的文件

java - 如何将这个 JSON 响应转换为 POJO?

java - 使用数据库信息填充 jcombobox

java - Spring JDBC 连接池和 InputStream 结果