我正在學習OCPJP認證,實際上我在JDBC章節。我知道我可以用兩種方式更新數據庫:第一種方法是使用JDBC API,特別是ResultSet類中的updatexxx方法;第二個是通過execute方法發送一個Statement,以便DBMS自己執行更新。所以,假設我有一個名爲「contacts」的表,並且我想將「phoneNo」字段更新爲「1234567890」,其中「name」字段等於「George」。請注意,我正在使用MySQL。JDBC如何更新數據庫?
ResultSet resultset = statement.executeQuery("SELECT * FROM contacts WHERE name=\"George\"");
resultset.updateString("phoneNo", "1234567890");
updateRow();
和這個之間有什麼區別?
statement.executeUpdate("UPDATE contacts SET phoneNo=\"1234567890\" WHERE name=\"George\"");
什麼時候應該使用第一種方法,何時使用第二種方法?爲什麼我應該選擇其中的一個呢? 謝謝:D
所以使用一個或的的其他取決於DBMS驅動程序,對吧?無論如何executeQuery返回一個ResultSet(SELECT x FROM y),如果您嘗試執行更新,您將不會有ResultSet,因此拋出異常 – Raffolox 2014-11-05 10:11:51
不,等待D:出現誤解,我沒有試圖執行更新使用executeQuery方法,我試圖找出執行更新使用executeUpdate方法和更新從executeQuery方法獲得的ResultSet之間有什麼區別 – Raffolox 2014-11-05 10:14:27
Raffolox問題是關於「何時使用可更新的ResultSet」,而不是executeQuery ()與executeUpdate()? – 2014-11-05 10:31:23