Sqlite
androidx.sqlite
ライブラリには抽象的なインターフェースとともに基本的な実装が含まれており、これを使用して SQLite にアクセスする独自のライブラリを構築できます。
Room ライブラリの使用を検討することをおすすめします。このライブラリは SQLite に抽象化レイヤを提供することで、より強固なデータベース アクセスを実現し、SQLite の全機能を活用できるようにします。
最新の更新 | 安定版リリース | リリース候補版 | ベータ版リリース | アルファ版リリース |
---|---|---|---|---|
2024 年 8 月 7 日 | 2.4.0 | - | - | 2.5.0-alpha06 |
依存関係の宣言
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-alpha06
2024 年 8 月 7 日
androidx.sqlite:sqlite-*:2.5.0-alpha06
がリリースされました。バージョン 2.5.0-alpha06 に含まれる commit については、こちらをご覧ください。
新機能
linuxArm64
Kotlin マルチプラットフォーム ターゲットのサポートを追加しました(I139d3、b/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 つのインターフェース(SQLiteDriver
、SQLiteConnection
、SQLiteStatement
)が含まれています。アーティファクト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.0
、androidx.sqlite:sqlite-framework:2.4.0
、androidx.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-rc01
、androidx.sqlite:sqlite-framework:2.4.0-rc01
、androidx.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-beta01
、androidx.sqlite:sqlite-framework:2.4.0-beta01
、androidx.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-alpha03
、androidx.sqlite:sqlite-framework:2.4.0-alpha03
、androidx.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-alpha02
、androidx.sqlite:sqlite-framework:2.4.0-alpha02
、androidx.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-alpha01
、androidx.sqlite:sqlite-framework:2.4.0-alpha01
、androidx.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.1
、androidx.sqlite:sqlite-framework:2.3.1
、androidx.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.0
、androidx.sqlite:sqlite-framework:2.3.0
、androidx.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
の設定に追加しました。(I1b830、b/215592732) FrameworkSQLite*
レベルでのマルチプロセス ロックと使用のための API を追加し、マルチプロセスの最初のデータベース作成と移行を保護するようにしました。(Ied267、b/193182592)
バージョン 2.3.0-rc01
2022 年 12 月 7 日
androidx.sqlite:sqlite:2.3.0-rc01
、androidx.sqlite:sqlite-framework:2.3.0-rc01
、androidx.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-beta02
、androidx.sqlite:sqlite-framework:2.3.0-beta02
、androidx.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-beta01
、androidx.sqlite:sqlite-framework:2.3.0-beta01
、androidx.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-alpha05
、androidx.sqlite:sqlite-framework:2.3.0-alpha05
、androidx.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-alpha04
、androidx.sqlite:sqlite-framework:2.3.0-alpha04
、androidx.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-alpha03
、androidx.sqlite:sqlite-framework:2.3.0-alpha03
、androidx.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-alpha02
、androidx.sqlite:sqlite-framework:2.3.0-alpha02
、androidx.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-alpha01
、androidx.sqlite:sqlite-framework:2.3.0-alpha01
、androidx.sqlite:sqlite-ktx:2.3.0-alpha01
がリリースされました。バージョン 2.3.0-alpha01 に含まれる commit については、こちらをご覧ください。
API の変更
- 復元メカニズム中のデータ損失を許容するための API を SupportSQLite の設定に追加しました。(I1b830、b/215592732)
- FrameworkSQLite* レベルでのマルチプロセス ロックと使用のための API を追加し、マルチプロセスの最初のデータベース作成と移行を保護するようにしました。(Ied267、b/193182592)
バージョン 2.2.0
バージョン 2.2.0
2021 年 12 月 15 日
androidx.sqlite:sqlite:2.2.0
、androidx.sqlite:sqlite-framework:2.2.0
、androidx.sqlite:sqlite-ktx:2.2.0
がリリースされました。バージョン 2.2.0 に含まれる commit については、こちらをご覧ください。
2.1.0 以降の重要な変更
SupportSQLiteDatabase
に execPerConnectionSQL()
のデフォルト メソッドを追加しました。
バージョン 2.2.0-rc01
2021 年 12 月 1 日
androidx.sqlite:sqlite:2.2.0-rc01
、androidx.sqlite:sqlite-framework:2.2.0-rc01
、androidx.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-beta01
、androidx.sqlite:sqlite-framework:2.2.0-beta01
、androidx.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-alpha02
、androidx.sqlite:sqlite-framework:2.2.0-alpha02
、androidx.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-alpha01
、androidx.sqlite:sqlite-framework:2.2.0-alpha01
、androidx.sqlite:sqlite-ktx:2.2.0-alpha01
がリリースされました。バージョン 2.2.0-alpha01 に含まれる commit については、こちらをご覧ください。
API の変更
- SupportSQLiteDatabase に
execPerConnectionSQL()
のデフォルト メソッドを追加しました。(I86326、b/172270145)
バージョン 2.1.0
バージョン 2.1.0
2020 年 1 月 22 日
androidx.sqlite:sqlite:2.1.0
、androidx.sqlite:sqlite-framework:2.1.0
、androidx.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-beta01
、androidx.sqlite:sqlite-framework:2.1.0-beta01
、androidx.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-alpha01
、androidx.sqlite:sqlite-framework:2.1.0-alpha01
、androidx.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/111504749、b/111519144)