カーソルの仕組みを理解しようとしていますが、このコードの一部がわかりません - ( http://www.vogella.com/articles/AndroidSQLite/article.htmlから削除)
public Comment createComment(String comment) {
ContentValues values = new ContentValues();
values.put(MySQLiteHelper.COLUMN_COMMENT, comment);
long insertId = database.insert(MySQLiteHelper.TABLE_COMMENTS, null,
values);
Cursor cursor = database.query(MySQLiteHelper.TABLE_COMMENTS,
allColumns, MySQLiteHelper.COLUMN_ID + " = " + insertId, null,
null, null, null);
cursor.moveToFirst();
Comment newComment = cursorToComment(cursor);
cursor.close();
return newComment;
}
誰かがここで何が起こっているのか説明してもらえますか? これが私が考えていることです - 彼はコメントという名前の列の下のテーブルに値を挿入しています。次に、テーブル内でコメントを追加した場所にカーソルを設定してクエリを実行します。
次に、なぜ彼がcursor.moveToFirst()を行うのか混乱しています。カーソルは、彼が追加したばかりの現在のコメントを指していませんか? 彼はテーブルに挿入したばかりのコメントを返そうとしているのではないかと思ったので、moveToFirst() メソッドを削除することはできませんでしたか?