我有包含这些信息的 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++;
}
最佳答案
在我看来,你的问题在于: sbnewer.append(rs.getString(ir)+"and");
查看 getString 的文档,该参数是您想要获取的列号(请注意,这不是您似乎假设的行号)。每次调用 rs.next 都会获取下一行,但您总是想要第 0 列(第一个 - 昵称),因此 ir 的整个用法似乎不正确。
如果删除 ir 变量并将上面的行替换为: sbnewer.append(rs.getString(0)+"and"); 你会得到你想要的。
关于java - 具体数据来自sqlite,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18275524/