使用Java在SQL表中显示重复条目

时间:2016-05-10 11:46:38

标签: java sql

我目前正在尝试通过使用sql语句在java中的数据库中搜索重复字段来访问主键。我的数据库包含图书ID的主键,并包含同一本书的多个副本。这些书具有相同的ISBN但书籍ID不同。是否可以使用SQL select语句提取这些唯一ID?每当我运行以下select语句时,我只能获得其中一个副本的数据:

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中提取唯一键?

3 个答案:

答案 0 :(得分:0)

rset2.next()将光标移动到下一行。由于您似乎没有任何循环迭代结果集,因此它不会超出第一行。

答案 1 :(得分:0)

为while(resultSet.next())更改if(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();

"如果"只获得第一个元素"而#34;得到所有元素

请参阅此问题的答案:Similar Question

答案 2 :(得分:0)

您使用了if条件,只允许您获取从查询中获取的第一条记录。 而是使用:

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