androidx.sqlite
라이브러리에는 SQLite에 액세스하는 자체 라이브러리를 빌드하는 데 사용할 수 있는 기본 구현과 함께 추상 인터페이스가 포함되어 있습니다. Room 라이브러리를 사용하는 것이 좋습니다.
SQLite 위에 추상화 계층을 추가하여 보다 강력한 데이터베이스 액세스를 가능하게 하는 동시에
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
입니다. 여기에는
모든 기기에 걸쳐 가장 최신 버전과 일관성을 제공하는
지원합니다
SQLite 드라이버 및 Room
드라이버 API는 SQLite 데이터베이스와의 하위 수준 상호작용에 유용합니다. SQLite 액세스를 더욱 강력하게 제공하는 기능이 풍부한 라이브러리의 경우 회의실을 사용하는 것이 좋습니다.
RoomDatabase
는 SQLiteDriver
를 사용하여 데이터베이스 작업을 실행하고
구현은 다음을 사용하여 구성해야 합니다.
RoomDatabase.Builder.setDriver()
객실 제공
RoomDatabase.useReaderConnection
및
RoomDatabase.useWriterConnection
를 사용하면 관리형 서비스에 직접 액세스할 수 있습니다.
데이터베이스 연결입니다