SQLite (Kotlin Çoklu Platform)

androidx.sqlite kitaplığı soyut arayüzler ve temel arayüzler içeriyor kitaplıklarınızı oluşturmak için kullanılabilecek uygulamalar hakkında bilgi edinin. SQLite Örneğin, çeşitli bölümlerin yer aldığı Oda kitaplığını daha güçlü veritabanı erişimi sağlamak için SQLite üzerinde bir soyutlama katmanı en iyi şekilde yararlanabilirsiniz.

Bağımlılıkları belirleme

Kotlin Çoklu Platform'u destekleyen mevcut androidx.sqlite sürümü (KMP) 2.5.0-alpha01 veya sonraki sürümlerdir.

KMP projenize SQLite kurmak için yapılara bağımlılık ekleyin modülünüzün build.gradle.kts dosyasında:

  • androidx.sqlite:sqlite - SQLite Sürücü arayüzleri
  • androidx.sqlite:sqlite-bundled - Paket halinde sunulan sürücü uygulaması

SQLite Sürücü API'leri

androidx.sqlite kitaplık grupları, iletişim kurmak için alt düzey API'ler sunar. kullanıldığında kitaplığın içerdiği SQLite kitaplığı androidx.sqlite:sqlite-bundled veya Android ya da iOS gibi ana makine platformunda androidx.sqlite:sqlite-framework kullanın. API'ler, Google Cloud'un işlevleri bulunuyor.

3 ana arayüz vardır:

Aşağıdaki örnekte temel API'ler gösterilmektedir:

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 aracını kullanarak bir veritabanı bağlantısı açın bazı ipuçları vereceğim.
  • SQLiteConnection.prepare() kullanarak SQL ifadesi hazırlayın
  • SQLiteStatement yürütme:
    • İsteğe bağlı olarak bind*() işlevlerini kullanarak bağımsız değişkenleri bağlama.
    • step() işlevi kullanılarak sonuç kümesi üzerinde iterasyon yapılır.
    • get*() işlevleri kullanılarak sonuç kümesindeki sütunlar okunuyor.
ziyaret edin.

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ü)

Kullanılması önerilen BundledSQLiteDriver uygulama şurada bulunmaktadır: androidx.sqlite:sqlite-bundled. Şu kaynaktan derlenen SQLite kitaplığını içerir: tüm kaynaklarda en güncel sürümü ve tutarlılığı desteklenen KMP platformlarını kullanın.

SQLite Sürücü ve Odası

Sürücü API'leri, SQLite veritabanıyla alt düzey etkileşimlerde kullanışlıdır. SQLite'a daha sağlam erişim sağlayan zengin özellik kitaplığı için, Oda kullanmanız önerilir.

RoomDatabase, veritabanı işlemlerini gerçekleştirmek için bir SQLiteDriver kullanır ve proje yaşam döngüsü boyunca RoomDatabase.Builder.setDriver(). Odanın sunduğu olanaklar RoomDatabase.useReaderConnection ve Yönetilen sürüme daha doğrudan erişim için RoomDatabase.useWriterConnection emin olun.