【发布时间】:2018-03-09 17:00:04
【问题描述】:
我正在使用以下代码从 sql 查询中获取结果:
try{
stmt = con.createStatement();
String sql = "SELECT DISTINCT COLUMN_NAME FROM TABLE_NAME";
rs = stmt.executeQuery(sql);
String[] commaseperatedValues ;
while (rs.next()) {
//do something
log.debug(" SetString string is "+rs.getString(1));
if(",".contains(rs.getString(1))){
commaseperatedValues = rs.getString(1).split(",");
for(String str : commaseperatedValues)
list.add(str);
}else{
list.add(rs.getString(1));
}
}
}
}catch{}
在日志中 ResultSet 打印为:
org.apache.commons.dbcp.DelegatingResultSet@f34e856
但它没有进入while循环。从 SQLDeveloper 它可以正确地给出结果。我得到了 (430) 个结果。但是 while 循环在这里不起作用。感谢您提供任何帮助。
【问题讨论】:
-
你怎么知道
while循环没有进入? -
在进入循环之前使用调试器检查
rs的值。 -
您知道您的查询至少返回 1 行吗?
-
@diginoise 是的,正如我所说,而 sql developer 中的相同查询返回 430 个结果
-
向我们展示循环内部的代码。 Edit 您的问题 - 请不要在 cmets 中提供邮政编码或其他信息。