2016-05-10 76 views
1

我目前正在嘗試通過在java中使用sql語句在數據庫中搜索重複字段來訪問主鍵。我的數據庫包含書本ID的主鍵,幷包含同一本書的多個副本。這些書有相同的ISBN但不同的書籍ID。是否可以使用SQL select語句來提取這些唯一ID?每當我運行下面的select語句,我只能獲得數據的副本之一:使用Java在SQL表中顯示重複條目

String queryString = 
    "select bid, title, author, checked from book where isbn = " + ID; 

ResultSet resultSet = stmt.executeQuery(queryString); 

if (resultSet.next()){ 
    bid = resultSet.getString(1); 
    title = resultSet.getString(2); 
    author = resultSet.getString(3); 
    checked = resultSet.getString(4); 
} 
resultSet.close(); 

如果我在SQL工作臺運行相同的語句,所有的數據都被提取。我如何提取java中的唯一鍵?

回答

0

rset2.next()將光標移動到下一行。由於您似乎沒有任何循環遍歷結果集,因此它不會超出第一行。

0

更改,如果(resultSet.next())的同時(resultSet.next()):

String queryString = 
    "select bid, title, author, checked from book where isbn = " + ID; 

ResultSet resultSet = stmt.executeQuery(queryString); 

// "while" instead of "if" 
while (resultSet.next()){ 
    bid = resultSet.getString(1); 
    // etc 

    // do something 
} 
resultSet.close(); 

「如果」 只得到了第一個元素 「而」 讓所有的元素

查看此問題的答案:Similar Question

+0

我使用while語句,我收到以下錯誤:java.sql.SQLException中:列索引超出範圍,3> 2 – Denver0001

+0

與該列的問題。您使用的resultSet.getString的數字高於實際列數 – Troncador

+0

我能夠提取第二行,但while語句跳過第一行 – Denver0001

0

如果條件允許您僅獲取從查詢中提取的第一條記錄,則使用此條件。 而是使用:

while(rs.next()) { 
// TO DO 
}