2015-09-29 50 views
-1

在IF條件中使用Statement.executeUpdate(String sql)方法,它實際上是否在數據庫上執行SQL?execute-execute方法是否在if-statment條件中運行?

例如:

void update(Statement stmt){ 
    String sql = "UPDATE room SET chairs=2 WHERE id=1"; 
    if (stmt.executeUpdate(sql) != 1) throw Exception; 
    sql = "SELECT name FROM room WHERE id=1"; 
    result = stmt.executeQuery(sql); 
} 

如此做的executeUpdate(SQL)部分實際運行和更新數據庫或者它只是檢查的if語句的條件,而不更新什麼嗎?

+2

如何將'executeUpdate'方法的返回值與'1'比較而不運行? – Seelenvirtuose

+0

我只是不確定它是否實際運行,以便更新數據庫中的數據,或者只是運行以確定返回值而不更新實際數據(executeUpdate僅返回0或受影響的行數正確)。 – johng2

回答

2
if (stmt.executeUpdate(sql) != 1) 

如果表達式stmt.executeUpdate(sql) != 1爲真,則執行if塊的主體。所以Java必須評估這個表達式。

該表達式比較返回的stmt.executeUpdate(sql)的-1。爲了能夠知道stmt.executeUpdate(sql)返回的值,它必須執行該方法。

所以,這是執行該方法。

+0

我只是不確定它是否實際運行,以便更新數據庫中的數據,或者只是運行以確定返回值而不更新實際數據。 – johng2

相關問題