即使条件为真,也无法进入while循环

时间:2016-08-03 16:36:35

标签: java sql jdbc spring-jdbc

我正在努力从数据库中提取数据。请找到以下代码:

我正在使用" 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,但它不会进入循环。需要一些帮助来解决这个问题。任何帮助表示赞赏。

2 个答案:

答案 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}