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.useReaderConnection
、
RoomDatabase.useWriterConnection
: マネージド グループに
データベース接続の 3 つです