我将数据插入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);");
答案 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