【问题标题】:The ResultSet can not be null for Statement.executeQueryStatement.executeQuery 的 ResultSet 不能为空
【发布时间】:2015-09-06 08:08:00
【问题描述】:

我正在向 MySQL 数据库插入数据,但在执行插入语句时出现错误:

Statement.executeQuery 的 ResultSet 不能为空。

虽然如果我检查数据库表,我发现值已成功插入。这令人困惑。

代码片段

Connection connection = null;
connection = DriverManager.getConnection("jdbc:google:rdbms://name-of-instance");
Statement check = connection.createStatement();
java.sql.ResultSet resultset = null;
resultset = check.executeQuery("insert into table_name values (values-inserted-here);");

【问题讨论】:

    标签: java mysql exception resultset


    【解决方案1】:

    要执行更新、删除或插入数据库中任何数据的查询,您不能使用executeQuery(String sql) (check here the docs),而是使用executeUpdate(String sql)

    所以而不是:

    check.executeQuery("insert into table_name values (values-inserted-here);");
    

    你应该这样做:

    check.executeUpdate("insert into table_name values (values-inserted-here);");
    

    ResultSet 在插入、删除或更新中始终为空,这就是它给您该错误的原因。如果你使用executeUpdate,错误应该会消失。

    希望对你有帮助!

    【讨论】:

      【解决方案2】:

      无需使用结果集。 ResultSet 仅在您从查询(如选择查询)中获取数据时使用。 只需使用

      Statement check = connection.createStatement();
      check.executeUpdate("insert into table_name values (values-inserted-here)");
      

      对于教程使用这个link

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-06-20
        • 1970-01-01
        • 2017-01-04
        • 1970-01-01
        • 1970-01-01
        • 2016-04-16
        相关资源
        最近更新 更多