gpt4 book ai didi

java.sql.SQLException : ResultSet is from UPDATE. 无数据。

转载 作者:行者123 更新时间:2023-11-29 03:00:16 25 4
gpt4 key购买 nike

(存储过程在 MySQL Workbench 中完美运行并且还检索行)

这是我的代码:

    ConnectionManager cm = new ConnectionManager();
java.sql.CallableStatement cstmt = null;

try
{
connect = cm.getConnection();
connect.createStatement();
String SQL = "{call getReportDetails ('"+ emailId +"','"+password+"')}";
cstmt = connect.prepareCall(SQL);
rs = cstmt.executeQuery(SQL);
int i = 0;
while(rs.next())
{
String element1 = rs.getString("description");
// -- some code --
}
}
catch(Exception e)
{
e.printStackTrace();
}

最佳答案

删除带有createStatement 的行。并且(错误)不要使用 SQL 作为 executeQuery 的参数。

(带有 sql 参数的重载版本是针对直接的、非准备语句版本。)

进一步关闭语句和结果集; try-with-resources 在这里会很好。

try (CallableStatement cstmt =
connect.prepareCall"{call getReportDetails (?, ?)}")) {
cstmt.setString(1, emailId);
cstmt.setString(2, password);
try (ResultSet rs = cstmt.executeQuery()) {
int i = 0;
while (rs.next())
{
String element1 = rs.getString("description");
// -- some code --
}
}
}

在存储函数的一般情况下,您可能需要自己指定结果:

cstmt.registerOutParameter(1, Types.INTEGER);
cstmt.registerOutParameter(2, Types.VARCHAR);
rs.getString(2);

但是这里有一个结果集。

关于java.sql.SQLException : ResultSet is from UPDATE. 无数据。,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24825402/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com