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 변경사항

  • 데이터베이스 연결을 열 때 열린 플래그를 전달하도록 BundledSQLiteDriveropen() 오버로드 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.0androidx.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-rc01androidx.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-beta01androidx.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-alpha03androidx.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-alpha01androidx.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.1androidx.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-beta01androidx.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-alpha04androidx.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-alpha01androidx.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.0androidx.sqlite:sqlite-ktx:2.2.0이 출시되었습니다. 버전 2.2.0에 포함된 커밋을 확인하세요.

2.1.0 이후 중요 변경사항

SupportSQLiteDatabaseexecPerConnectionSQL()의 기본 메서드를 추가합니다.

버전 2.2.0-rc01

2021년 12월 1일

androidx.sqlite:sqlite:2.2.0-rc01, androidx.sqlite:sqlite-framework:2.2.0-rc01androidx.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-beta01androidx.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-alpha02androidx.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-alpha01androidx.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.0androidx.sqlite:sqlite-ktx:2.1.02.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-beta01androidx.sqlite:sqlite-ktx:2.1.0-beta012.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-alpha01androidx.sqlite:sqlite-ktx:2.1.0-alpha01이 출시되었습니다. 버전 2.1.0-alpha01에 포함된 커밋을 확인하세요.

API 변경사항

  • SupportSQLiteOpenHelper.ConfigurationuseNoBackupDirectory라는 새 속성이 추가되었습니다. 이 속성은 파일 기반 데이터베이스를 백업 없는 디렉터리에서 생성하고 찾아야 한다는 것을 나타냅니다.

버전 2.0.1

버전 2.0.1

2019년 3월 13일

버전 2.0.1의 androidx.sqlite 아티팩트 그룹이 두 가지 버그 수정과 함께 출시되었습니다.

버그 수정

  • FrameworkSQLiteOpenHelper가 초기화 과정에서 손상된 데이터베이스 또는 잘못된 이전을 제대로 복구하지 못하는 두 가지 문제가 수정되었습니다. (b/111504749, b/111519144)