SQLite(Kotlin マルチプラットフォーム)

androidx.sqlite ライブラリには、抽象インターフェースと基本的なインターフェースが含まれています。 アクセスする独自のライブラリを構築するために使用できる実装です。 SQLite。Room ライブラリの使用をおすすめします。このライブラリでは、 SQLite に対する抽象化レイヤにより、より堅牢なデータベース アクセスを可能にし、 おわかりいただけると思います

依存関係をセットアップする

Kotlin マルチプラットフォームをサポートする androidx.sqlite の現在のバージョン (KMP)2.5.0-alpha01 以降。

KMP プロジェクトで SQLite を設定するには、アーティファクトの依存関係を追加します これをモジュールの build.gradle.kts ファイルに記述します。

  • androidx.sqlite:sqlite - SQLite ドライバ インターフェース
  • androidx.sqlite:sqlite-bundled - バンドルされたドライバの実装

SQLite ドライバ API

androidx.sqlite ライブラリ グループには、通信用の低レベル API が用意されています。 SQLite ライブラリがライブラリに含まれているか、 androidx.sqlite:sqlite-bundled、またはホスト プラットフォーム(Android、iOS など)にある androidx.sqlite:sqlite-framework を使用する場合。API はコア 機能をサポートしています。

主に次の 3 つのインターフェースがあります。

  • SQLiteDriver - SQLite を使用するためのエントリ ポイントであり、 データベース接続を開きます
  • SQLiteConnection - sqlite3 オブジェクトを表します。
  • SQLiteStatement - sqlite3_stmt オブジェクトを表します。

次の例は、コア API を示しています。

fun main() {
  val databaseConnection = BundledSQLiteDriver().open("todos.db")
  databaseConnection.execSQL(
    "CREATE TABLE IF NOT EXISTS Todo (id INTEGER PRIMARY KEY, content TEXT)"
  )
  databaseConnection.prepare(
    "INSERT OR IGNORE INTO Todo (id, content) VALUES (? ,?)"
  ).use { stmt ->
    stmt.bindInt(index = 1, value = 1)
    stmt.bindText(index = 2, value = "Try Room in the KMP project.")
    stmt.step()
  }
  databaseConnection.prepare("SELECT content FROM Todo").use { stmt ->
    while (stmt.step()) {
      println("Action item: ${stmt.getText(0)}")
    }
  }
  databaseConnection.close()
}

SQLite C API と同様に、一般的な使い方は次のとおりです。

  • インスタンス化された SQLiteDriver を使用してデータベース接続を開きます 説明します。
  • SQLiteConnection.prepare() を使用して SQL ステートメントを準備する
  • 次の方法で SQLiteStatement を実行します。 <ph type="x-smartling-placeholder">
      </ph>
    • 必要に応じて、bind*() 関数を使用して引数をバインドします。
    • step() 関数を使用して結果セットを反復処理する。
    • get*() 関数を使用して結果セットから列を読み取る。
で確認できます。

ドライバの実装

次の表は、利用可能なドライバ実装をまとめたものです。

クラス名

アーティファクト

対応プラットフォーム

AndroidSQLiteDriver androidx.sqlite:sqlite-framework

Android

NativeSQLiteDriver androidx.sqlite:sqlite-framework

iOS、Mac、Linux

BundledSQLiteDriver androidx.sqlite:sqlite-bundled

Android、iOS、Mac、Linux、JVM(デスクトップ)

推奨される実装は BundledSQLiteDriver です。 androidx.sqlite:sqlite-bundled。これには、Terraform からコンパイルされた SQLite ライブラリが含まれます。 提供されるため、最新のバージョンが提供され、あらゆる環境で整合性が サポートしています。

SQLite ドライバと Room

ドライバ API は、SQLite データベースの低レベルの操作に役立ちます。 SQLite へのより堅牢なアクセスを提供する機能豊富なライブラリの場合は、次のようにします。 会議室をおすすめします。

RoomDatabase は、SQLiteDriver を使用してデータベース オペレーションを実行し、 実装を構成するには、このモジュールの RoomDatabase.Builder.setDriver()。Room では次のコンテンツが利用できます: RoomDatabase.useReaderConnectionRoomDatabase.useWriterConnection: マネージド グループに データベース接続の 3 つです