2017-04-04 121 views
0

這是一個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

回答

2

您要執行更新語句(某些不返回ResultSet),但您試圖將其作爲查詢執行。當我第一次使用Java數據庫驅動程序時,我也犯了這個錯誤。

你想要做的是改變:

resultSet = preparedStatement.executeQuery(); 

這樣的:如果你有一個選擇查詢時,才需要

preparedStatement.execute(); 
+0

yup,就是這樣。儘管我將execute()更改爲executeUpdate()。非常感謝你 :) – Roger

0

的executeQuery適用於select語句 的插入/更新你應該使用的executeUpdate。此方法返回int(插入/更新的記錄計數)