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 に答える