1

我有包含这些信息的 sqlite 表

Id     Nickname    Status
1        john      online
2        Tom       offline
3         .        online
.         .        online
.         .        online

所以我需要状态为在线的表中的所有昵称,我会将这些数据转换为字符串数组。

我试过这个,但它没有任何反应。

Class.forName("org.sqlite.JDBC");

Connection connection = DriverManager.getConnection(url, username, pass);
PreparedStatement pst=connection.prepareStatement("SELECT Nickname FROM USERS WHERE status=?");
pst.setString(1, "Online");

ResultSet rs= pst.executeQuery();

StringBuilder sbnewer=new StringBuilder();
int ir=1;
sbnewer.append("linestart");

while(rs.next()){
    sbnewer.append(rs.getString(ir)+"and");
    ir++;
}
4

1 回答 1

1

在我看来,您的问题在于: sbnewer.append(rs.getString(ir)+"and");

查看 getString 状态的文档,参数是您想要获取的 COLUMN 编号(注意这不是您似乎假设的 ROW 编号)。对 rs.next 的每次调用都会让您获得下一行,但您总是想要第 0 列(第一个 - NickName)所以 ir 的整个用法似乎不正确。

如果删除 ir 变量并将上面的行简单地替换为: sbnewer.append(rs.getString(0)+"and"); 你会得到你想要的。

于 2013-08-16T14:47:38.880 回答