2010-06-02 70 views
0

我希望能夠檢查,看看我的結果集是否有結果。藤本,我會執行:檢查結果集是否爲空,如果沒有,然後得到int

if(rs.next()){ 
    boolean = true; 
} 

但是我要檢查,看看它的值是在數據庫中,如果這樣檢索:

while(rs.next()) 
    id = rs.getInt("id); 

我會如何結合這兩種?如果結果集爲空,我想要返回-2。
由於事先
院長

回答

5
id = rs.next() ? rs.getInt("id") : -2; 

這樣呢?

+0

你能解釋一下,因爲我從未見過這樣的東西嗎? – Dean 2010-06-02 17:01:26

+0

@Dean:這是一個帶三元運算符'?:'的三元表達式。它基本上與'int id; if(rs.next())id = rs.getInt(「id」); else id = -2;'。另請參閱http://java.sun.com/docs/books/tutorial/java/nutsandbolts/op2.html – BalusC 2010-06-02 17:06:24

2

只需使用一個if-else

if (resultSet.next()) { 
    return resultSet.getInt("id"); 
} else { 
    return -2; 
} 

另見this answer更多的提示如何處理存在,零/一,零/更多的結果。

+0

除非您真的應該關閉結果集,這幾乎要求您在任何一種情況下保存結果,然後關閉結果集,然後返回。 – Jay 2010-06-02 17:17:42

+1

@Jay:我不知道你如何關閉你的資源,但我通常在'finally'關閉它們,它會正常工作。 – BalusC 2010-06-02 17:19:37

+0

好的,我會買的。就我個人而言,我通常會在finally塊中關閉連接,但在主線代碼中關閉ResultSets和Statements,因爲我懶得在try塊之外聲明它們,然後將它們填充到裏面。 – Jay 2010-06-03 17:22:19