Sqlite
androidx.sqlite
라이브러리에는 SQLite에 액세스하는 자체 라이브러리를 빌드하는 데 사용할 수 있는 기본 구현과 함께 추상 인터페이스가 포함되어 있습니다.
개발자는 SQLite을 완벽히 활용하면서 강력한 데이터베이스 액세스를 지원하는 SQLite의 추상화 레이어를 제공하는 Room 라이브러리 사용을 고려할 수 있습니다.
최근 업데이트 | 안정화 버전 | 출시 후보 버전 | 베타 버전 | 알파 버전 |
---|---|---|---|---|
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을 개선하는 데 도움이 됩니다. 새로운 문제를 발견하거나 라이브러리 개선을 위한 아이디어가 있다면 Google에 알려 주세요. 새 문제를 제출하기 전에 이 라이브러리의 기존 문제를 살펴보시기 바랍니다. 별표 버튼을 클릭하여 기존 문제에 투표할 수 있습니다.
자세한 내용은 Issue Tracker 문서를 참고하세요.
버전 2.5
버전 2.5.0-alpha07
2024년 8월 21일
androidx.sqlite:sqlite-*:2.5.0-alpha07
이 출시되었습니다. 버전 2.5.0-alpha07에 포함된 커밋을 확인하세요.
새로운 기능
- JVM / 데스크톱 타겟에서 Linux ARM 64 지원 추가 (b/358045505 참조)
버전 2.5.0-alpha06
2024년 8월 7일
androidx.sqlite:sqlite-*:2.5.0-alpha06
이 출시되었습니다. 버전 2.5.0-alpha06에 포함된 커밋을 확인하세요.
새로운 기능
linuxArm64
Kotlin 멀티플랫폼 타겟 지원을 추가합니다. (I139d3, b/338268719)
버전 2.5.0-alpha05
2024년 7월 10일
androidx.sqlite:sqlite-*:2.5.0-alpha05
이 출시되었습니다. 버전 2.5.0-alpha05에 포함된 커밋을 확인하세요.
API 변경사항
SQLiteKt
의 이름이SQLite
으로,BundledSQLiteKt
의 이름이BundledSQLite
으로 변경되었습니다. 추가했습니다. (I8b501)
버전 2.5.0-alpha04
2024년 6월 12일
androidx.sqlite:sqlite-*:2.5.0-alpha04
이 출시되었습니다. 버전 2.5.0-alpha04에 포함된 커밋을 확인하세요.
API 변경사항
- 데이터베이스 연결을 열 때 열린 플래그를 전달하도록
BundledSQLiteDriver
에open()
오버로드 API를 추가했습니다. 데이터베이스를 읽기 전용 모드로 열거나 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에 포함된 커밋을 확인하세요.
버그 수정
BundledSQLiteDriver
로 생성된 데이터베이스에 C null 종결자 문자가 포함되는BundledSQLiteDriver
문제를 수정합니다. b/340822359를 참조하세요.
버전 2.5.0-alpha02
2024년 5월 14일
androidx.sqlite:sqlite-*:2.5.0-alpha02
이 2.5.0-alpha01 이후 큰 변경사항 없이 출시되었습니다 . 버전 2.5.0-alpha02에 포함된 커밋을 확인하세요.
버전 2.5.0-alpha01
2024년 5월 1일
androidx.sqlite:sqlite-*:2.5.0-alpha01
이 출시되었습니다. 버전 2.5.0-alpha01에 포함된 커밋을 확인하세요.
새로운 기능
- Kotlin 멀티 플랫폼 (KMP) 지원: Room KMP의 첫 번째 버전인 Room 2.7.0-alpha01이 출시됨에 따라 Room을 KMP로 만드는
SQLite
API도 업데이트되었습니다.andriodx.sqlite
패키지에는 하위 수준 SQLite API를 정의하는 세 가지 인터페이스(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에 포함된 커밋을 확인하세요.
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에 포함된 커밋을 확인하세요.
버전 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에 포함된 커밋을 확인하세요.
버전 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에 포함된 커밋을 확인하세요.
버전 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에 포함된 커밋을 확인하세요.
버전 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에 포함된 커밋을 확인하세요.
버그 수정
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에 포함된 커밋을 확인하세요.
버그 수정
- 마이그레이션 중에 스키마 변경 후 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에 포함된 커밋을 확인하세요.
2.2.0 이후 중요 변경사항
- 라이브러리 그룹
androidx.sqlite
소스가 자바에서 Kotlin으로 변환되었습니다. 참고로,androidx.sqlite
에 null 허용 여부 주석이 누락되었기 때문에 소스가 Kotlin에 있고 코드에서 null 허용 여부를 잘못 추론하는 경우 소스 비호환 오류가 발생할 수 있습니다. 게다가 특정 getter 메서드는 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에 포함된 커밋을 확인하세요.
버그 수정
- 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에 포함된 커밋을 확인하세요.
- 자바의 배열 동작과 일치하도록 쿼리 인수를 불변(
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에 포함된 커밋을 확인하세요.
API 변경사항
- 모든 android.sqlite 소스가 자바에서 Kotlin으로 변환되었습니다. (b/240707042)
- 변환에서 한 가지 주목할 만한 변경사항은 다음의 getter 함수가 속성이 되었다는 것입니다.
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에 포함된 커밋을 확인하세요.
API 변경사항
- 라이브러리 그룹 androidx.sqlite 소스가 자바에서 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에 포함된 커밋을 확인하세요.
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에 포함된 커밋을 확인하세요.
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에 포함된 커밋을 확인하세요.
- 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에 포함된 커밋을 확인하세요.
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에 포함된 커밋을 확인하세요.
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에 포함된 커밋을 확인하세요.
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에 포함된 커밋을 확인하세요.
- 이전 알파 버전에서 변경된 사항이 없습니다.
버전 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에 포함된 커밋을 확인하세요.
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에 포함된 커밋을 확인하세요.
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에 포함된 커밋을 확인하세요.
2.0.1 이후 중요 변경사항
useNoBackupDirectory
가 지원됩니다. 이는SupportSQLiteOpenHelper
사용 시 데이터베이스를 백업 없는 디렉터리에서 생성해야 한다는 것을 나타내는 데 사용할 수 있습니다.
버전 2.1.0-rc01
2020년 1월 8일
androidx.sqlite:sqlite-*:2.1.0-rc01
이 출시되었습니다. 버전 2.1.0-rc01에 포함된 커밋을 확인하세요.
이 버전은 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에 포함된 커밋을 확인하세요.
버전 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에 포함된 커밋을 확인하세요.
API 변경사항
SupportSQLiteOpenHelper.Configuration
에useNoBackupDirectory
라는 새 속성이 추가되었습니다. 이 속성은 파일 기반 데이터베이스를 백업 없는 디렉터리에서 생성하고 찾아야 한다는 것을 나타냅니다.
버전 2.0.1
버전 2.0.1
2019년 3월 13일
버전 2.0.1의 androidx.sqlite
아티팩트 그룹이 두 가지 버그 수정과 함께 출시되었습니다.
버그 수정
FrameworkSQLiteOpenHelper
가 초기화 과정에서 손상된 데이터베이스 또는 잘못된 이전을 제대로 복구하지 못하는 두 가지 문제가 수정되었습니다. (b/111504749, b/111519144)