CodeBlanks Logo Icon CodeBlanks

Transaction

transaction bloğu ile SQL işlemlerini öğrenirsin.

Transaction nedir?

Transaction, Exposed'da tüm veritabanı işlemlerinin yapıldığı bloktur. Bir transaction { ... } çağrısı blok açar; bitince işlem tamamlanır.

Örnek: transaction { Users.insert { it[name] = "Ayşe" } }. Bu bloğun sonunda insert otomatik olarak commit edilir. Blok içinde bir istisna fırlarsa işlem geri alınır (rollback). Bu, veritabanı tutarlılığını korur. Exposed, transaction içindeki tüm sorguların aynı bağlantıyı kullanmasını sağlar. Transaction dışında sorgu çalıştırılamaz.

Transaction kullanımı

Tüm veritabanı işlemleri transaction { ... } bloğu içinde yapılır. Exposed, bu bloğun sonunda işlemi otomatik commit eder.

Örnek: transaction { val user = Users.select { Users.id eq 1 }.first(); println(user[Users.name]) }. Bu blok bir kayıt okur ve adını yazdırır. Birden fazla işlem tek transaction içinde yapılırsa hepsi atomik olur; ya hepsi başarılı ya hiçbiri. Bu özellik, para transferi gibi tutarlılık gerektiren senaryolarda anlamlıdır. transaction bir suspending fonksiyon değildir; senkron çalışır.

Uygulama Transaction bloğu aç

Database.connect("jdbc:h2:mem:test", driver = "org.h2.Driver") ile bağlantı aç. transaction { ... } bloğu içinde println("İşlem hazır") yazdır.

Başlangıç kodu

Main.kt
// Transaction
// buraya yaz
import org.jetbrains.exposed.sql.*
import org.jetbrains.exposed.sql.transactions.transaction

fun main() {
    
}

Örnek çözüm

Main.kt
fun main() {
    Database.connect("jdbc:h2:mem:test", driver = "org.h2.Driver")
    transaction {
        println("İşlem hazır")
    }
}

Beklenen çıktı

İşlem hazır

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 Transaction parçalarını eşle

Kavram Anlamı
transaction İşlem bloğu
commit Yazma
rollback Geri alma
insert Kayıt ekleme

2 Transaction bloğu bittiğinde ne olur?

  • Otomatik commit edilir Doğru cevap
  • İşlem geri alınır
  • Bağlantı kapanır
  • Yeni transaction açılır

Açıklama: Transaction bitince otomatik commit olur.

3 transaction bloğunu tamamla

Soru
____ {
    Users.insert { it[Users.name] = "Ayşe" }
}
Cevap
transaction {
    Users.insert { it[Users.name] = "Ayşe" }
}

Açıklama: transaction ile veritabanı işlemi açılır.

İleri seviye bölümündeki tüm dersler