データベース接続、検索に関して、インターネット上のいくつかのコードを調べていました。私は多くのコードでCursor cur1= moveToFirst()
を見ました。私はAndroidが初めてなので、カーソルの使用法とmoveToFirst()
を使用する理由を知りたいと思いました。
Cursorは、任意のデータベースの2次元テーブルを表すインターフェイスです。 [〜#〜] select [〜#〜]ステートメントを使用してデータを取得しようとすると、データベースは最初に[〜#〜] cursor [〜#〜]を作成しますオブジェクトとその参照を返します。
この返された参照のポインタは番目の位置を指しているが、そうでない場合はCursorの最初の位置の前と呼ばれるため、カーソルからデータを取得するには、最初のレコードに移動する必要があるため、moveToFirstを使用する必要があります
CursorでmoveToFirst()メソッドを呼び出すと、カーソルポインターが最初の位置に移動します。これで、最初のレコードにあるデータにアクセスできます
簡単に言うと、カーソルはクエリデータのコレクションを返すインターフェイスです。 moveToFirst()
は、カーソルからデータを取得する場所からカーソル位置を指すために使用されます。メソッドmoveToLast()
、moveToNext()
、moveToPrevious()
、moveToPosition(position)
があり、これらを使用してカーソルを希望の方法で反復処理できます。
たとえば、カーソルにデータがあります
_Lalit
Rithesh
Paresh
Chandra
_
moveToFirst()
-cursor.moveToFirst()
を使用する場合、この場合、カーソルの最初のデータであるLalitを指します。カーソルから次のデータを取得するには、moveToNext()
を使用できます。
moveToLast()
-これは、カーソルの現在のデータとしてChandraをポイントします。カーソルから前のデータを取得するには、moveToPrevious()
を使用できます
カーソルはクエリの結果を表し、基本的にクエリ結果の1行を指します。この方法Androidは、すべてのデータをメモリにロードする必要がないため、クエリ結果を効率的にバッファリングできます。
結果のクエリの要素数を取得するには、getCount()
メソッドを使用します。
個々のデータ行間を移動するには、moveToFirst()
メソッドとmoveToNext()
メソッドを使用できます。 isAfterLast()
メソッドを使用すると、クエリ結果の最後に到達したかどうかを確認できます。
カーソルは、型付きのget *()メソッドを提供します。 getLong(columnIndex)
、getString(columnIndex)
は、結果の現在の位置の列データにアクセスします。 「columnIndex」は、アクセスしている列の番号です。
カーソルは、テーブルの列名の列インデックスを取得できるgetColumnIndexOrThrow(String)
メソッドも提供します。
カーソルは、close()
メソッド呼び出しで閉じる必要があります。クエリはCursorオブジェクトを返します。
カーソルはJavaのResultSetに似ており、ポインターを使用して一部のクエリによって返される行があります。 moveToFirst()
、moveToNext()
、およびmoveToPosition(position)
は、ポインターを目的の位置に設定します。
カーソルは、SQLクエリの結果が格納されるものです。
Cursorインターフェイスをデータコレクションとして使用します。
PL/SQL
のCursor
に似ていますが、ポインターを使用していくつかのクエリによって返された1つ以上の行を保持する方法があります。
以下のメソッドは、Cursor
インターフェースを使用してCursor
を反復処理し、Cursor pointer
を目的の位置に設定できます。
カーソルは、データを表すコレクションとして使用されるインターフェイスです。これは、PL/SQLのカーソルに似ており、いくつかのクエリによって返される行(1つまたは複数)をそのポインターとともに保持します。 moveToFirst()、moveToLast()、moveToNext()、moveToPrevious()、moveToPosition(position)は、カーソルを反復処理し、ポインタを目的の位置に設定するカーソルで使用可能なメソッドです。
カーソルインターフェイスは、データベースクエリによって返される結果セットへのランダムな読み取り/書き込みアクセスを提供します。
カーソルの実装は同期する必要がないため、複数のスレッドからカーソルを使用するコードは、カーソルを使用するときに独自の同期を実行する必要があります。