2012-01-09 51 views
9

請告訴我哪出了兩種方法,的executeUpdate執行是插入查詢像insert into users(name, addr, city, sex, dob) values(?,?,?,?,?);這兩個語句將執行查詢,但哪一個應該理想地被用於插入查詢的最佳嗎?使用方法:executeUpdate()或execute()?

+0

[PreparedStatement在Oracle中成功執行但在Microsoft SQL中拋出異常]的可能重複(http://stackoverflow.com/questions/8786911/preparedstatement-executing-successfully-in-oracle-but-throwing-exception-in-話筒) – axtavt 2012-01-09 11:41:09

+0

你讀過每個人的javadoc嗎?答案就在那裏。 – skaffman 2012-01-09 12:00:57

回答

14

返回值不同。 ExecuteUpdate()返回更新的行數,這在運行更新語句時非常有用。在你的情況下,它不是必需的,因爲你知道你插入了多少條記錄。你可以使用任何一個。

+0

因此,使用其中任何一個都沒有好處?在這種情況下,使用哪種方法並不重要? – 2012-01-09 11:42:43

+0

對。沒關係。 – Sjoerd 2012-01-09 11:45:15

+0

好的。非常感謝:) – 2012-01-09 11:46:27

2

原則上只有返回值是不同的。但是,我發現使用jConnect 3訪問Sybase ASE 15.7時,execute()函數不會阻塞,直到觸發器運行並立即關閉PreparedStatement將ROLL返回更新。 (插入1s睡眠使它可以用於我嘗試的一個查詢。)相比之下,executeUpdate()不會遇到這個問題;它似乎做了正確的事情,並且在關閉PreparedStatement之前不需要任意的睡眠。

相關問題