我正在努力从数据库中提取数据。请找到以下代码:
我正在使用" org.springframework.jdbc.support.rowset.SqlRowSet"来自Springframework.jdbc。
String query="SELECT * from TABLE_NAME where id=? and password=?";
args.add(userId);
args.add(password);
SqlRowSet rs = this.jdbcTemplate.queryForRowSet(query, args.toArray());
while (rs.next()) {
---Some Code---
}
rs.next()为true,但它不会进入循环。需要一些帮助来解决这个问题。任何帮助表示赞赏。
答案 0 :(得分:3)
这只是一个猜测,但是因为你知道rs.next()
返回true
,这意味着你执行了它(在调试模式下或打印到控制台或其他任何方式)。
每次执行它时,它会将行集推进到下一行(如果有的话)。如果你的行集只包含1行,那么你可以检查" rs.next()
在循环之前返回的值,永远不会输入循环,因为当它再次被调用时,不再有行,因此返回false
。
答案 1 :(得分:0)
我不是这个原因。但我改变了实施方式。我已经通过从resultSet获取大小来将while循环更改为for循环。非常感谢您的建议。
int size =0;
if (rs != null)
{
rs.beforeFirst();
rs.last();
size = rs.getRow();
}
for (int i =0;i<size;i++){//Do SOMETHING}