将java值插入sqlite数据库
问题描述:
这是一个java插入数据库问题的值。将java值插入sqlite数据库
我想插入数据到我的数据库,但我得到一个异常,指出“查询不返回结果”。我究竟做错了什么?我应该返回什么?
这是我的功能代码:
public void commitToDB(String fName) throws SQLException {
PreparedStatement preparedStatement = null;
ResultSet resultSet = null;
String query = "INSERT INTO users (firstname)" + " VALUES (?)";
try {
preparedStatement = connection.prepareStatement(query);
preparedStatement.setString(1, fName);
// execute the preparedstatement
resultSet = preparedStatement.executeQuery();
}
catch(Exception e) {
System.out.println("Got an exception");
System.out.println(e.getMessage());
}
finally {
preparedStatement.close();
resultSet.close();
}
}
答
您要执行更新语句(某些不返回ResultSet),但您试图将其作为查询执行。当我第一次使用Java数据库驱动程序时,我也犯了这个错误。
你想要做的是改变:
resultSet = preparedStatement.executeQuery();
这样的:如果你有一个选择查询时,才需要
preparedStatement.execute();
+0
yup,就是这样。尽管我将execute()更改为executeUpdate()。非常感谢你 :) – Roger
答
的executeQuery适用于select语句 的插入/更新你应该使用的executeUpdate。此方法返回int(插入/更新的记录计数)
结果集。如果它的更新/插入等,你不必将其分配给结果集。如果我没有记错,那么从该方法返回的内容是int。这个int只显示它是否成功 – XtremeBaumer