Kotlin'in De SQLite Kulanım Rehberi

Konuyu başlatankyr karacaMod·
Yanıt
0
Görüntülenme
1
Oy
0
Son yanıt
Henüz yok
1 görüntülenme

Kotlin'in De SQLite Kulanım Rehberi

Kotlin ile geliştirilen Android uygulamaların veritabanı yönetimi, geliştiricilerin en çok uğraştıkları konulardan biri. SQLite'ın hafif ve esnek yapısı, Kotlin'in güçlü nesne yönelimli programlama özellikleriyle birleştirildiğinde, veritabanı işlemlerini kolay ve verimli hale getirir. Bu rehberde, Kotlin ile SQLite ve Room Persistence Library'nin kullanımı, veritabanı sınıfının tanımlanması, insert, update, delete ve select işlemleri, asenkron veri yönetimi ve modern projelerde Room kütüphanesinin tercih edilmesiyle ilgili açıklamaları bulacaksınız.

  • Veritabanı Sınıfını Tanımlama ve Tablo Oluşturma

Bir SQLite veritabanı sınıfı oluşturmak için, SQLiteOpenHelper sınıfını继承 (kalıtım) etmek gereklidir. SQLiteOpenHelper sınıfları, veritabanı oluşturma, açma ve kapatma işlemlerini yönetir.

kotlin
import android.content.Context
import android.database.sqlite.SQLiteDatabase
import android.database.sqlite.SQLiteOpenHelper

class VeritabanıHelper(context: Context) : SQLiteOpenHelper(context, "veritabanı", null, 1) {
    override fun onCreate(db: SQLiteDatabase?) {
        db?.execSQL("CREATE TABLE users (id INTEGER PRIMARY KEY, name TEXT, email TEXT)")
    }

    override fun onUpgrade(db: SQLiteDatabase?, oldVersion: Int, newVersion: Int) {
        db?.execSQL("DROP TABLE users")
        onCreate(db)
    }
}
  • Insert, Update, Delete ve Select İşlemleri

SQLite'de insert, update, delete ve select işlemleri, ContentValues sınıfı kullanma yoluyla yapılır.

kotlin
val db = VeritabanıHelper(this).writableDatabase
val contentValues = ContentValues()
contentValues.put("name", "John Doe")
contentValues.put("email", "john.doe@example.com")
db.insert("users", null, contentValues)
db.close()
  • Verilerin Asenkron Yönetimi (Coroutine Kullanımı)

Verilerin asenkron yönetimi, kullanıcı arayüzünü (UI) kilitlemeden veri çekmeye yardımcı olur. Kotlin'de, Coroutine sınıfı bu amaçla kullanılır.

kotlin
import kotlinx.coroutines.*

fun getVeri() {
    val scope = CoroutineScope(Dispatchers.IO)
    scope.launch {
        val db = VeritabanıHelper(this).readableDatabase
        val cursor = db.rawQuery("SELECT * FROM users", null)
        val veri = cursor.moveToFirst()
        cursor.close()
        db.close()
    }
}
  • Neden Modern Projelerde Room Kütüphanesinin Tercih Edildiği

Room Persistence Library, SQLite'i daha kolay ve esnek bir şekilde kullanmak için tasarlanmıştır. Room, DAO (Data Access Object) sınıfı oluşturma, Entity tanımlama, Query oluşturma ve Migration yönetimi gibi işlemleri otomatik olarak yapması sayesinde, geliştiricilerin veritabanı yönetimi daha kolay hale gelir.

  • Veritabanı İşlemleri Sırasında Ana Thread'i Bloklamamak ve Veritabanı Sızıntılarını Önlemek

SQLite işlemleri sırasında ana thread'i bloklamak veya veritabanı sızıntılarını önlemek, kritik bir konudur.

Bu işlemleri ana thread'de yapmanız, UI'nin bloklanmasına neden olur ve kullanıcı deneyimi olumsuz etkiler.

  • Veritabanı Performansını Artırmak İçin Bir Pro İpucu

Veritabanı performansı, verilerin düzenli olarak silinmesi ve temizlenmesi ile artırılabilmektedir. Bu, veritabanı sızıntılarını önleyerek ve verilerin doğru bir şekilde işlenmesini sağlayan bir yöntemdir.

kotlin
val db = VeritabanıHelper(this).writableDatabase
val cursor = db.rawQuery("SELECT * FROM users WHERE deleted_at IS NOT NULL", null)
if (cursor.moveToFirst()) {
    while (!cursor.isAfterLast()) {
        val id = cursor.getInt(cursor.getColumnIndex("id"))
        db.delete("users", "id = ?", arrayOf(id.toString()))
        cursor.moveToNext()
    }
}
cursor.close()
db.close()
0 yanıt1

Konuyu Yanıtla

Markdown destekler · Alıntı, kod, liste kullanabilirsiniz

Konuyu yanıtlamak için giriş yapmalısınız.

Bu konuda yer alanlar

Bu gönderinin yazarı ve yorum yazan üyeler (yalnızca bu konu).