2013-08-27 60 views
-2

我想從一個Java應用程序發送字符串「格列佛遊記」到SQL數據庫。我嘗試使用preparedStatements但失敗。我怎樣才能做到這一點? 這是我的代碼。在Java中使用preparedStatements將數據發送到MySQL數據庫的正確方法是什麼?

private int setData(Connection conn,Object[] data){ 
    String sql = "INSERT INTO book VALUES(?,?)"; 
    PreparedStatement prepStm = conn.prepareStatement(sql); 
    prepStm.setObject(1,data[0]); 
    prepStm.setObject(2,data[1]); 
    return prepStm.executeUpdate(); 
} 

表列:

bookName : VARCHAR 
    bookPrice : INT 

錯誤: SQL語法錯誤。未能在名稱字段添加到數據庫

+0

_failed_ how? –

+1

'book'有什麼專欄?他們是什麼類型的? – MadProgrammer

+0

bookName - VARCHAR bookPrice - VARCHAR 給出了SQL語法錯誤。 bookName列未填充。 –

回答

0

嘗試用這種 這是更新的問題

private int setData(Connection conn,Object[] data){ 
    String sql = "INSERT INTO book VALUES(?,?)"; 
    PreparedStatement prepStm = conn.prepareStatement(sql); 
    prepStm.setString(1,"Gulliver's Travels"); 
    prepStm.setInt(2,200); 
    return prepStm.executeUpdate(); 
} 
+0

等一下。我會試試..順便有誰能告訴我爲什麼我的問題被拒絕了? –

+0

@ isuru-buddhika通過提供更多信息來改善您的問題。請參閱您的問題中的評論。許多用戶想要更多詳細信息 – SpringLearner

+0

感謝您指出。我其實並不認爲表格列會是一個問題。順便說一句,爲什麼我不能使用prepStm.setObject? –

0

設置對象是不是你應該做什麼。當您知道輸入的數據類型以及數據庫列的數據類型時,請使用正確的setter方法。

private int setData(Connection conn,Object[] data){ 
    String sql = "INSERT INTO book VALUES(?,?)"; 
    PreparedStatement prepStm = conn.prepareStatement(sql); 
    prepStm.setString(1,"Gulliver's Travels"); 
    prepStm.setFloat(2,200.00); 
    return prepStm.executeUpdate(); 
} 
相關問題