ไลบรารี androidx.sqlite
ประกอบด้วยอินเทอร์เฟซแบบนามธรรมรวมถึง
ที่คุณสามารถนำไปใช้สร้างไลบรารีของคุณเองที่เข้าถึง
SQLite คุณอาจต้องการลองใช้ไลบรารีห้อง ซึ่ง
ชั้นแอบสแตรกชันบน SQLite เพื่อช่วยให้เข้าถึงฐานข้อมูลได้อย่างมีประสิทธิภาพยิ่งขึ้น
ที่ใช้ประโยชน์จาก SQLite อย่างเต็มที่
การตั้งค่าทรัพยากร Dependency
androidx.sqlite
เวอร์ชันปัจจุบันที่รองรับ Kotlin Multi-Platform
(KMP) 2.5.0-alpha01 ขึ้นไป
หากต้องการตั้งค่า SQLite ในโปรเจ็กต์ KMP ให้เพิ่มทรัพยากร Dependency สำหรับอาร์ติแฟกต์
ในไฟล์ build.gradle.kts
สำหรับโมดูล
androidx.sqlite:sqlite
- อินเทอร์เฟซไดรเวอร์ SQLiteandroidx.sqlite:sqlite-bundled
- การใช้งานไดรเวอร์แพ็กเกจ
SQLite Driver API
กลุ่มไลบรารี androidx.sqlite
มี API ระดับต่ำสำหรับการสื่อสารด้วย
ไลบรารี SQLite ที่รวมอยู่ในไลบรารีเมื่อใช้
androidx.sqlite:sqlite-bundled
หรือในแพลตฟอร์มโฮสต์ เช่น Android หรือ iOS
เมื่อใช้ androidx.sqlite:sqlite-framework
API เป็นไปตามธีมหลัก
ของ SQLite C 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
ที่สร้างอินสแตนซ์ การใช้งานของคุณ - เตรียมคำสั่ง SQL โดยใช้
SQLiteConnection.prepare()
- เรียกใช้
SQLiteStatement
โดย:- เชื่อมโยงอาร์กิวเมนต์โดยใช้ฟังก์ชัน
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 ที่คอมไพล์จาก
นำเสนอเวอร์ชันที่ทันสมัยที่สุด และมีความสอดคล้องกันในทุก
แพลตฟอร์ม KMP ที่รองรับ
ไดรเวอร์และห้อง SQLite
API ไดรเวอร์มีประโยชน์สำหรับการโต้ตอบระดับต่ำกับฐานข้อมูล SQLite สำหรับไลบรารีที่มีฟีเจอร์ซึ่งให้การเข้าถึง SQLite ที่มีประสิทธิภาพมากขึ้น ขอแนะนำให้ใช้ห้องแชท
RoomDatabase
ใช้ SQLiteDriver
ในการดำเนินการฐานข้อมูลและ
การติดตั้งใช้งานจำเป็นต้องมีการกำหนดค่าโดยใช้
RoomDatabase.Builder.setDriver()
ห้องพักมี
RoomDatabase.useReaderConnection
และ
RoomDatabase.useWriterConnection
สำหรับการเข้าถึงโดยตรงมากขึ้นไปยังบัญชีที่จัดการ
การเชื่อมต่อฐานข้อมูล