androidx.sqlite
kitaplığında soyut arayüzlerin yanı sıra SQLite'a erişen kendi kitaplıklarınızı oluşturmak için kullanılabilecek temel uygulamalar bulunur. SQLite'ın üzerinde bir soyutlama katmanı sağlayan Room kitaplığını kullanabilirsiniz. Bu kitaplık, SQLite'ın tüm gücünden yararlanırken daha sağlam veritabanı erişimi sağlamak için SQLite üzerinde soyutlama katmanı sağlar.
Bağımlılıkları ayarlama
Kotlin Çoklu Platform'u (KMP) destekleyen mevcut androidx.sqlite
sürümü, 2.5.0-alpha01 veya üzeridir.
KMP projenizde SQLite kurmak için modülünüzün build.gradle.kts
dosyasına yapıların bağımlılıklarını ekleyin:
androidx.sqlite:sqlite
- SQLite Sürücüsü arayüzleriandroidx.sqlite:sqlite-bundled
: Paket halinde sunulan sürücü uygulaması
SQLite Sürücü API'leri
androidx.sqlite
kitaplık grupları, androidx.sqlite:sqlite-bundled
kullanılırken kitaplıkta veya androidx.sqlite:sqlite-framework
kullanırken Android ya da iOS gibi ana makine platformunda SQLite kitaplığıyla iletişim kurmak için alt düzey API'ler sunar. API'ler SQLite C API'nin temel işlevini yakından takip eder.
3 ana arayüz vardır:
SQLiteDriver
: SQLite'ın kullanılacağı giriş noktasıdır ve veritabanı bağlantılarını açmaktan sorumludur.SQLiteConnection
:sqlite3
nesnesinin temsilidir.SQLiteStatement
:sqlite3_stmt
nesnesinin temsilidir.
Aşağıdaki örnekte temel API'ler gösterilmiştir:
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'lerine benzer şekilde yaygın kullanım şu şekildedir:
- Örneklenen
SQLiteDriver
uygulamasını kullanarak bir veritabanı bağlantısı açın. SQLiteConnection.prepare()
kullanarak SQL deyimi hazırlamaSQLiteStatement
yürütme işlemini şu şekilde yürütün:- İsterseniz
bind*()
işlevlerini kullanarak bağımsız değişkenleri bağlayabilirsiniz. step()
işlevi kullanılarak sonuç kümesi üzerinde yineleme.get*()
işlevlerini kullanarak sonuç kümesindeki sütunlar okunuyor.
- İsterseniz
Sürücü Uygulamaları
Aşağıdaki tabloda kullanılabilir sürücü uygulamaları özetlenmiştir:
Sınıf Adı |
Yapı |
Desteklenen Platformlar |
AndroidSQLiteDriver |
androidx.sqlite:sqlite-framework |
Android |
NativeSQLiteDriver |
androidx.sqlite:sqlite-framework |
iOS, Mac ve Linux |
BundledSQLiteDriver |
androidx.sqlite:sqlite-bundled |
Android, iOS, Mac, Linux ve JVM (Masaüstü) |
androidx.sqlite:sqlite-bundled
için önerilen uygulama BundledSQLiteDriver
şeklindedir. Kaynaktan derlenen SQLite kitaplığını içeren bu paket, desteklenen tüm KMP platformlarında en güncel sürümü ve tutarlılığı sunar.
SQLite Sürücüsü ve Odası
Sürücü API'leri, SQLite veritabanıyla alt düzey etkileşimler için kullanışlıdır. SQLite'a daha güçlü bir erişim sağlayan zengin özelliklere sahip bir kitaplık için Room'un kullanılması önerilir.
RoomDatabase
, veritabanı işlemlerini gerçekleştirmek için SQLiteDriver
gerektirir ve RoomDatabase.Builder.setDriver()
ile bir uygulama yapılandırılmalıdır. Oda, yönetilen veritabanı bağlantılarına daha fazla doğrudan erişim için RoomDatabase.useReaderConnection
ve RoomDatabase.useWriterConnection
olanağı sağlar.