将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(); 
    } 
} 
+0

结果集。如果它的更新/插入等,你不必将其分配给结果集。如果我没有记错,那么从该方法返回的内容是int。这个int只显示它是否成功 – XtremeBaumer

您要执行更新语句(某些不返回ResultSet),但您试图将其作为查询执行。当我第一次使用Java数据库驱动程序时,我也犯了这个错误。

你想要做的是改变:

resultSet = preparedStatement.executeQuery(); 

这样的:如果你有一个选择查询时,才需要

preparedStatement.execute(); 
+0

yup,就是这样。尽管我将execute()更改为executeUpdate()。非常感谢你 :) – Roger

的executeQuery适用于select语句 的插入/更新你应该使用的executeUpdate。此方法返回int(插入/更新的记录计数)