我目前正在尝试通过使用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中提取唯一键?
答案 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
}