Statement.executeQuery的ResultSet不能为null

时间:2015-06-20 11:25:35

标签: java mysql exception resultset

我将数据插入MySQL数据库,但在执行insert语句时出错:

  

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);");

2 个答案:

答案 0 :(得分: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,则错误应该消失。

希望它有所帮助!

答案 1 :(得分:0)

无需使用ResultSet。 ResultSet仅在从查询中获取数据时使用,如select查询。 只需使用

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

和教程使用此link