java - 具体数据来自sqlite

标签 java sql sqlite

我有包含这些信息的 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/

相关文章:

java - 更新SQLite数据库导致错误

java - int 不会覆盖 Java 中的 Integer

java - 不眨眼地更新 Flex 中的照片

mysql - SQL json提取数组中的位置

mysql - 将一个表的两列连接到另一个表的同一列

mysql - 如何为连接指定特定的列?

android.database.Cursor registerContentObserver

使用 sqlite 数据库部署 Django 应用程序

sql - 用GROUP BY之后的号码查询

java - 在 arrayList 的某个索引处插入元素的运行时间是多少?