当前位置: 代码迷 >> Oracle开发 >> Oracle的ResultSet循环出现有关问题
  详细解决方案

Oracle的ResultSet循环出现有关问题

热度:62   发布时间:2016-04-24 06:55:42.0
Oracle的ResultSet循环出现问题
public List<Product> getProductsByKeys(String keys){
final ArrayList<Product> products = new ArrayList<Product>();
String sql = "select * from product where name like '%"+keys+"%'";
System.out.println("sql:"+sql);
this.query(sql, new RowCallbackHandler() {

@Override
public void processRow(ResultSet rs) throws SQLException{
Product product = null;
while (rs.next()) {
product = new Product();
product.setId(rs.getString("id"));
product.setName(rs.getString("name"));
product.setPrice(rs.getString("price"));
System.out.println(product);
products.add(product);
}
}
});
return products;
}

上面的始终取不到第一个结果,所有的都是从第二个开始,Oracle的ResultSet所指向的第一个都是从真正的数据开始吗?我第一次用Oracle
oracle java sql 数据 next

------解决方案--------------------
使用JDBC是没有问题的,你用别人的框架得看它的文档说明。
你可以使用ResultSet的isBeforeFirst(),isFirst(),getRow()方法去判断是否已经执行过next了。
如果确实是已经执行过next了,那么你可以改成:
do{...}while(rs.next());
  相关解决方案