【发布时间】:2020-08-13 00:08:36
【问题描述】:
这是我的代码:
ResultSet chaserResults = LiteSQL.onQuery("SELECT count(*), id, name, geburt, geschlecht, speed, speedf, strength, strengthf, " +
"val3, val3f, val4, val4f, val5, val5f, position FROM player WHERE position = 'Chaser' AND teamid = " + teamid);
setchaser = new Chaser[chaserResults.getInt("count(*)")];
int i = 0;
while(chaserResults.next()){
setchaser[i] = new Chaser(chaserResults.getInt("id"), chaserResults.getString("name"), chaserResults.getInt("geburt"),
teamResults.getInt("id"), chaserResults.getInt("geschlecht"), chaserResults.getInt("speed"),
chaserResults.getInt("speedf"), chaserResults.getInt("strength"), chaserResults.getInt("strengthf"),
chaserResults.getInt("val3"), chaserResults.getInt("val3f"), chaserResults.getInt("val4"),
chaserResults.getInt("val4f"), chaserResults.getInt("val5"), chaserResults.getInt("val5f"),
chaserResults.getString("position"));
i++;
System.out.println(i);
}
我很抱歉我的编码不好!我真的不知道为什么,但它在第一行之后就停止了。我认为它可能是行“chaserResult.getInt("count(*)") 的东西,但我不知道如何替换它,因为我需要一个计算行数的方法。
【问题讨论】:
-
teamResults.getInt("id")是什么? -
为什么不使用ArrayList而不是Array呢?
-
你应该学会使用参数化查询,这样更安全,可以防止错误引用和SQL注入漏洞。此外,在聚合时,不在
GROUP BY子句中的所有列都应该是聚合函数的参数。 SQLite 可能会接受该规则被打破,但大多数其他 DBMS 不接受。因此,当遵循标准规则时,代码更具可移植性。当这条规则被打破时,结果可能会很有趣。