【发布时间】:2016-11-24 17:16:22
【问题描述】:
我正在查询我的 SQL 数据库,发现当我请求 160 行,而数据库只有 44 行时,ResultSet 返回 160 行。发生这种情况时,前 44 行具有实际有用的数值,其余 116 行具有全部为 0 的值。如何让ResultSet 仅包含或向我提供从数据库查询返回的 44 行?这是代码片段:
statement = connection.createStatement();
query = "SELECT " + "Close" + ", Volume" + " FROM source_data_manager.TradingData_daily WHERE Exchange = '" + exchange +
"' and Symbol = '" + symbol + "' order by EntryID DESC limit " + 160 + ";";
//Execute the query
resultSet = statement.executeQuery(query);
//Loop through the results
int count = 0;
while (resultSet.next())
{
valuesRetrieved[count++] = resultSet.getDouble(1);
volume += resultSet.getLong(2);
}
退出这个循环,count 等于160,但应该等于44。数组valuesRetrieved[] 有 44 个实际可用值元素,其余 114 个值均为零 (0)。数组中应该只有 44 个值。
【问题讨论】:
-
你用的是什么数据库之王?
-
直接对数据库运行查询,看看你得到了多少行。
-
告诉我们你是如何声明
valuesRetrieved的,如果你声明使用double[] valuesRetrieved = new double[160],你的尾随0来自它而不是你的查询结果 -
顺便说一句,剩下的应该是
116而不是114 -
我正在使用用于 Java 的 SQL 库,它是 netbeans IDE 的“默认”。