Sqlite

androidx.sqlite ライブラリには抽象的なインターフェースとともに基本的な実装が含まれており、これを使用して SQLite にアクセスする独自のライブラリを構築できます。

Room ライブラリの使用を検討することをおすすめします。このライブラリは SQLite に抽象化レイヤを提供することで、より強固なデータベース アクセスを実現し、SQLite の全機能を活用できるようにします。

最新の更新 安定版リリース リリース候補版 ベータ版リリース アルファ版リリース
2024 年 8 月 21 日 2.4.0 - - 2.5.0-alpha07

依存関係の宣言

SQLite への依存関係を追加するには、Google の Maven リポジトリをプロジェクトに追加する必要があります。詳しくは、Google の Maven リポジトリをご覧ください。

アプリまたはモジュールの build.gradle ファイルに、必要なアーティファクトの依存関係を追加します。

Groovy

dependencies {
    def sqlite_version = "2.4.0"

    // Java language implementation
    implementation "androidx.sqlite:sqlite:$sqlite_version"

    // Kotlin
    implementation "androidx.sqlite:sqlite-ktx:$sqlite_version"

    // Implementation of the AndroidX SQLite interfaces via the Android framework APIs.
    implementation "androidx.sqlite:sqlite-framework:$sqlite_version"
}

Kotlin

dependencies {
    val sqlite_version = "2.4.0"

    // Java language implementation
    implementation("androidx.sqlite:sqlite:$sqlite_version")

    // Kotlin
    implementation("androidx.sqlite:sqlite-ktx:$sqlite_version")

    // Implementation of the AndroidX SQLite interfaces via the Android framework APIs.
    implementation("androidx.sqlite:sqlite-framework:$sqlite_version")
}

依存関係について詳しくは、ビルド依存関係の追加をご覧ください。

フィードバック

お寄せいただいたフィードバックは Jetpack 改善の参考にさせていただきます。新しい問題が見つかった場合や、このライブラリを改善するアイデアをお持ちの場合は、お知らせください。新しい問題を報告していただく前に、このライブラリの既存の問題をご確認ください。スターボタンをクリックすると、既存の問題に投票できます。

新しい問題を報告する

詳細については、Issue Tracker のドキュメントをご覧ください。

バージョン 2.5

バージョン 2.5.0-alpha07

2024 年 8 月 21 日

androidx.sqlite:sqlite-*:2.5.0-alpha07 がリリースされました。バージョン 2.5.0-alpha07 に含まれる commit については、こちらをご覧ください。

新機能

  • JVM / デスクトップ ターゲットに Linux ARM 64 のサポートを追加しました。(b/358045505)。

バージョン 2.5.0-alpha06

2024 年 8 月 7 日

androidx.sqlite:sqlite-*:2.5.0-alpha06 がリリースされました。バージョン 2.5.0-alpha06 に含まれる commit については、こちらをご覧ください。

新機能

  • linuxArm64 Kotlin マルチプラットフォーム ターゲットのサポートを追加しました(I139d3b/338268719)。

バージョン 2.5.0-alpha05

2024 年 7 月 10 日

androidx.sqlite:sqlite-*:2.5.0-alpha05 がリリースされました。バージョン 2.5.0-alpha05 に含まれる commit については、こちらをご覧ください。

API の変更

  • SQLiteKt の名前を SQLite に、BundledSQLiteKt の名前を BundledSQLite に変更しました。(I8b501)。

バージョン 2.5.0-alpha04

2024 年 6 月 12 日

androidx.sqlite:sqlite-*:2.5.0-alpha04 がリリースされました。バージョン 2.5.0-alpha04 に含まれる commit については、こちらをご覧ください。

API の変更

  • データベース接続を開くときにオープンフラグを渡す open() オーバーロード API を BundledSQLiteDriver に追加しました。データベースを読み取り専用モードで開く場合や、バンドルされた SQLite のコンパイルに使用するマルチスレッド モードの代わりにシリアル化されたスレッドのセーフモードを使用する場合に便利です(b/340949940)。

バグの修正

  • ARM32 を搭載した Android デバイスでアトミック シンボルがないために UnsatisfiedLinkError がスローされる、バンドルされた SQLite ドライバのリンクの問題を修正しました。(b/341639198)。
  • 長さが 0 のバイト配列を列にバインドすると、ドライバ内の読み取り時に null 値になる問題を修正しました。

バージョン 2.5.0-alpha03

2024 年 5 月 29 日

androidx.sqlite:sqlite-*:2.5.0-alpha03 がリリースされました。バージョン 2.5.0-alpha03 に含まれる commit については、こちらをご覧ください。

バグの修正

  • BundledSQLiteDriver を使用して作成されたデータベースに C の null 終端文字が含まれる問題を修正しました。(b/340822359)。

バージョン 2.5.0-alpha02

2024 年 5 月 14 日

androidx.sqlite:sqlite-*:2.5.0-alpha02 がリリースされました。2.5.0-alpha01 から重要な変更はありません。バージョン 2.5.0-alpha02 に含まれる commit については、こちらをご覧ください。

バージョン 2.5.0-alpha01

2024 年 5 月 1 日

androidx.sqlite:sqlite-*:2.5.0-alpha01 がリリースされました。バージョン 2.5.0-alpha01 に含まれる commit については、こちらをご覧ください。

新機能

  • Kotlin マルチプラットフォーム(KMP)のサポート: Room KMP の最初のリリースである Room 2.7.0-alpha01 のリリースに伴い、Room を KMP にする SQLite API も更新されました。andriodx.sqlite パッケージには、低レベルの SQLite API を定義する 3 つのインターフェース(SQLiteDriverSQLiteConnectionSQLiteStatement)が含まれています。アーティファクト androidx.sqlite:sqlite-framework は Android と iOS のインターフェースの実装をネイティブに提供し、androidx.sqlite:sqlite-bundled はソースからコンパイルされた SQLite(バンドルされた SQLite とも呼ばれます)を使用する実装を提供します。SQLite Driver API の詳細については、公式の SQLite KMP ドキュメントをご覧ください。

バージョン 2.4

バージョン 2.4.0

2023 年 10 月 18 日

androidx.sqlite:sqlite:2.4.0androidx.sqlite:sqlite-framework:2.4.0androidx.sqlite:sqlite-ktx:2.4.0 がリリースされました。バージョン 2.4.0 に含まれる commit については、こちらをご覧ください

2.3.0 以降の重要な変更

  • さまざまなバグが修正されました。

バージョン 2.4.0-rc01

2023 年 9 月 20 日

androidx.sqlite:sqlite:2.4.0-rc01androidx.sqlite:sqlite-framework:2.4.0-rc01androidx.sqlite:sqlite-ktx:2.4.0-rc01 がリリースされました。バージョン 2.4.0-rc01 に含まれる commit については、こちらをご覧ください

バージョン 2.4.0-beta01

2023 年 8 月 23 日

androidx.sqlite:sqlite:2.4.0-beta01androidx.sqlite:sqlite-framework:2.4.0-beta01androidx.sqlite:sqlite-ktx:2.4.0-beta01 がリリースされました。バージョン 2.4.0-beta01 に含まれる commit については、こちらをご覧ください

バージョン 2.4.0-alpha03

2023 年 8 月 9 日

androidx.sqlite:sqlite:2.4.0-alpha03androidx.sqlite:sqlite-framework:2.4.0-alpha03androidx.sqlite:sqlite-ktx:2.4.0-alpha03 がリリースされました。バージョン 2.4.0-alpha03 に含まれる commit については、こちらをご覧ください

バージョン 2.4.0-alpha02

2023 年 6 月 21 日

androidx.sqlite:sqlite:2.4.0-alpha02androidx.sqlite:sqlite-framework:2.4.0-alpha02androidx.sqlite:sqlite-ktx:2.4.0-alpha02 がリリースされました。変更はありません。バージョン 2.4.0-alpha02 に含まれる commit については、こちらをご覧ください

バージョン 2.4.0-alpha01

2023 年 3 月 22 日

androidx.sqlite:sqlite:2.4.0-alpha01androidx.sqlite:sqlite-framework:2.4.0-alpha01androidx.sqlite:sqlite-ktx:2.4.0-alpha01 がリリースされました。バージョン 2.4.0-alpha01 に含まれる commit については、こちらをご覧ください

バグの修正

  • SupportSQLiteQueryBuilder で発生する可能性がある NullPointerException を修正しました。(5df8698)。

バージョン 2.3.1

バージョン 2.3.1

2023 年 3 月 22 日

androidx.sqlite:sqlite:2.3.1androidx.sqlite:sqlite-framework:2.3.1androidx.sqlite:sqlite-ktx:2.3.1 がリリースされました。バージョン 2.3.1 に含まれる commit については、こちらをご覧ください

バグの修正

  • 移行中のスキーマ変更後に SQL クエリが無効にならないフレームワークの問題を回避します。FrameworkSupportSQLiteOpenHelper は、問題を回避するために、移行中に最小 SQL ステートメント キャッシュを設定するようになりました。(0ad2a8f)。
  • キャッシュ ディレクトリを SupportSQLiteLock に使用できない可能性があるため、null ファイルを適切に処理する必要がある問題を修正しました。(9d177dc)。
  • attachedDbs が、アタッチされたデータベースの完全なリストを返さない問題を修正しました。(5f008e1)。

バージョン 2.3.0

バージョン 2.3.0

2023 年 1 月 11 日

androidx.sqlite:sqlite:2.3.0androidx.sqlite:sqlite-framework:2.3.0androidx.sqlite:sqlite-ktx:2.3.0 がリリースされました。バージョン 2.3.0 に含まれる commit については、こちらをご覧ください

2.2.0 以降の重要な変更

  • ライブラリ グループ androidx.sqlite のソースが Java から Kotlin に変換されました。androidx.sqlite には欠けている null 可能性アノテーションがあったため、該当のソースが Kotlin の場合、そのコードで誤った null 可能性が推測されると、ソースの互換性がなくなるエラーが発生することがありました。さらに、特定のゲッター メソッドが、Kotlin ファイルでプロパティ アクセス構文を必要とするプロパティに変換されました。重大な非互換性エラーが生じた場合は、バグを報告してください。(b/240707042
  • 復元メカニズム中のデータ損失を許容するための API を SupportSQLite's の設定に追加しました。(I1b830b/215592732
  • FrameworkSQLite* レベルでのマルチプロセス ロックと使用のための API を追加し、マルチプロセスの最初のデータベース作成と移行を保護するようにしました。(Ied267b/193182592

バージョン 2.3.0-rc01

2022 年 12 月 7 日

androidx.sqlite:sqlite:2.3.0-rc01androidx.sqlite:sqlite-framework:2.3.0-rc01androidx.sqlite:sqlite-ktx:2.3.0-rc01 がリリースされました。バージョン 2.3.0-rc01 に含まれる commit については、こちらをご覧ください。

バグの修正

  • null 許容型の列に関する SupportSQLiteQueryBuilder の NPE の問題を解決しました。(Ica8f5

バージョン 2.3.0-beta02

2022 年 11 月 9 日

androidx.sqlite:sqlite:2.3.0-beta02androidx.sqlite:sqlite-framework:2.3.0-beta02androidx.sqlite:sqlite-ktx:2.3.0-beta02 がリリースされました。バージョン 2.3.0-beta02 に含まれる commit については、こちらをご覧ください

  • Java の配列の動作と一致するように、不変(Array<Any?>)から反変(Array<out Any?>)まで、クエリ引数を受け取るさまざまな API を修正しました。(b/253531073

バージョン 2.3.0-beta01

2022 年 10 月 5 日

androidx.sqlite:sqlite:2.3.0-beta01androidx.sqlite:sqlite-framework:2.3.0-beta01androidx.sqlite:sqlite-ktx:2.3.0-beta01 がリリースされました。バージョン 2.3.0-beta01 に含まれる commit については、こちらをご覧ください

API の変更

  • android.sqlite のソースはすべて Java から Kotlin に変換されました。b/240707042
  • 変換における大きな変更点の 1 つは、次のゲッター関数がプロパティになったことです。
    • SupportSQLiteDatabase 内:
    • attachedDbs
    • isDatabaseIntegrityOk
    • isDbLockedByCurrentThread
    • isOpen
    • isReadOnly
    • isWriteAheadLoggingEnabled
    • maximumSize
    • pageSize
    • path
    • version
    • SupportSQLiteOpenHelper 内:
    • databaseName
    • readableDatabase
    • writableDatabase

バージョン 2.3.0-alpha05

2022 年 8 月 24 日

androidx.sqlite:sqlite:2.3.0-alpha05androidx.sqlite:sqlite-framework:2.3.0-alpha05androidx.sqlite:sqlite-ktx:2.3.0-alpha05 がリリースされました。バージョン 2.3.0-alpha05 に含まれる commit については、こちらをご覧ください

API の変更

  • ライブラリ グループ androidx.sqlite のソースが Java から Kotlin に変換されました。androidx.sqlite には欠けている null 可能性アノテーションがあったため、該当のソースが Kotlin の場合、そのコードで誤った null 可能性が推測されると、ソースの互換性がなくなるエラーが発生することがありました。重大な非互換性エラーが生じた場合は、バグを報告してください。(b/240707042

バージョン 2.3.0-alpha04

2022 年 8 月 10 日

androidx.sqlite:sqlite:2.3.0-alpha04androidx.sqlite:sqlite-framework:2.3.0-alpha04androidx.sqlite:sqlite-ktx:2.3.0-alpha04 がリリースされました。バージョン 2.3.0-alpha04 に含まれる commit については、こちらをご覧ください

API の変更

  • null 可能性を更新しました。(I29fbd

バージョン 2.3.0-alpha03

2022 年 6 月 1 日

androidx.sqlite:sqlite:2.3.0-alpha03androidx.sqlite:sqlite-framework:2.3.0-alpha03androidx.sqlite:sqlite-ktx:2.3.0-alpha03 がリリースされました。バージョン 2.3.0-alpha03 に含まれる commit については、こちらをご覧ください

API の変更

  • androidx.sqlite.ProcessLock が制限されるようになりました。API の範囲が設定され、機能は androidx.sqlite 内に限定されます。汎用マルチプロセス ロックとして使用することはできません。(I1643f

バージョン 2.3.0-alpha02

2022 年 4 月 6 日

androidx.sqlite:sqlite:2.3.0-alpha02androidx.sqlite:sqlite-framework:2.3.0-alpha02androidx.sqlite:sqlite-ktx:2.3.0-alpha02 がリリースされました。バージョン 2.3.0-alpha02 に含まれる commit については、こちらをご覧ください

  • 2.3.0-alpha01 以降、重要な変更はありません。

バージョン 2.3.0-alpha01

2022 年 2 月 23 日

androidx.sqlite:sqlite:2.3.0-alpha01androidx.sqlite:sqlite-framework:2.3.0-alpha01androidx.sqlite:sqlite-ktx:2.3.0-alpha01 がリリースされました。バージョン 2.3.0-alpha01 に含まれる commit については、こちらをご覧ください

API の変更

  • 復元メカニズム中のデータ損失を許容するための API を SupportSQLite の設定に追加しました。(I1b830b/215592732
  • FrameworkSQLite* レベルでのマルチプロセス ロックと使用のための API を追加し、マルチプロセスの最初のデータベース作成と移行を保護するようにしました。(Ied267b/193182592

バージョン 2.2.0

バージョン 2.2.0

2021 年 12 月 15 日

androidx.sqlite:sqlite:2.2.0androidx.sqlite:sqlite-framework:2.2.0androidx.sqlite:sqlite-ktx:2.2.0 がリリースされました。バージョン 2.2.0 に含まれる commit については、こちらをご覧ください

2.1.0 以降の重要な変更

SupportSQLiteDatabaseexecPerConnectionSQL() のデフォルト メソッドを追加しました。

バージョン 2.2.0-rc01

2021 年 12 月 1 日

androidx.sqlite:sqlite:2.2.0-rc01androidx.sqlite:sqlite-framework:2.2.0-rc01androidx.sqlite:sqlite-ktx:2.2.0-rc01 がリリースされました。バージョン 2.2.0-rc01 に含まれる commit については、こちらをご覧ください。

2.2.0-beta01 以降、重要な変更はありません。

バージョン 2.2.0-beta01

2021 年 10 月 13 日

androidx.sqlite:sqlite:2.2.0-beta01androidx.sqlite:sqlite-framework:2.2.0-beta01androidx.sqlite:sqlite-ktx:2.2.0-beta01 がリリースされました。バージョン 2.2.0-beta01 に含まれる commit については、こちらをご覧ください

  • 以前のアルファ版からの変更はありません。

バージョン 2.2.0-alpha02

2021 年 7 月 21 日

androidx.sqlite:sqlite:2.2.0-alpha02androidx.sqlite:sqlite-framework:2.2.0-alpha02androidx.sqlite:sqlite-ktx:2.2.0-alpha02 がリリースされました。バージョン 2.2.0-alpha02 に含まれる commit については、こちらをご覧ください

2.2.0-alpha01 以降、重要な変更はありません。このリリースは Room 2.4.0-alpha04 リリースに合わせたものです。

バージョン 2.2.0-alpha01

2021 年 6 月 16 日

androidx.sqlite:sqlite:2.2.0-alpha01androidx.sqlite:sqlite-framework:2.2.0-alpha01androidx.sqlite:sqlite-ktx:2.2.0-alpha01 がリリースされました。バージョン 2.2.0-alpha01 に含まれる commit については、こちらをご覧ください。

API の変更

  • SupportSQLiteDatabase に execPerConnectionSQL() のデフォルト メソッドを追加しました。(I86326b/172270145

バージョン 2.1.0

バージョン 2.1.0

2020 年 1 月 22 日

androidx.sqlite:sqlite:2.1.0androidx.sqlite:sqlite-framework:2.1.0androidx.sqlite:sqlite-ktx:2.1.0 がリリースされました。2.1.0-rc01 からの変更はありません。バージョン 2.1.0 に含まれる commit については、こちらをご覧ください

2.0.1 以降の重要な変更

  • useNoBackupDirectory のサポート。これにより、SupportSQLiteOpenHelper 使用時に、バックアップなしのディレクトリにデータベースを作成することを示します。

バージョン 2.1.0-rc01

2020 年 1 月 8 日

androidx.sqlite:sqlite-*:2.1.0-rc01 がリリースされました。バージョン 2.1.0-rc01 に含まれる commit については、こちらをご覧ください

このリリースは 2.1.0-beta01 と同一です。

バージョン 2.1.0-beta01

2019 年 12 月 4 日

androidx.sqlite:sqlite:2.1.0-beta01androidx.sqlite:sqlite-framework:2.1.0-beta01androidx.sqlite:sqlite-ktx:2.1.0-beta01 がリリースされました。2.1.0-alpha01 からの変更はありません。バージョン 2.1.0-beta01 に含まれる commit については、こちらをご覧ください

バージョン 2.1.0-alpha01

2019 年 11 月 7 日

androidx.sqlite:sqlite:2.1.0-alpha01androidx.sqlite:sqlite-framework:2.1.0-alpha01androidx.sqlite:sqlite-ktx:2.1.0-alpha01 がリリースされました。バージョン 2.1.0-alpha01 に含まれる commit については、こちらをご覧ください

API の変更

  • バックアップがないディレクトリにファイルベースのデータベースを作成、配置する必要があることを示す、useNoBackupDirectory という新しいプロパティを SupportSQLiteOpenHelper.Configuration に追加しました。

バージョン 2.0.1

バージョン 2.0.1

2019 年 3 月 13 日

androidx.sqlite アーティファクト グループのバージョン 2.0.1 がリリースされました。バグの修正は下記の 2 件です。

バグの修正

  • データベースが破損した場合、または初期化中に不正な移行が行われた場合に、FrameworkSQLiteOpenHelper が正常に復元できない問題を 2 件修正しました。(b/111504749b/111519144