Sobes.tech
Middle

JDBCda qaysi tranzaksiya izolyatsiya darajalari qo'llab-quvvatlanadi?

sobes.tech AI

AIdan javob

JDBC-da quyidagi tranzaksiya izolyatsiya darajalari qo'llab-quvvatlanadi:

  1. TRANSACTION_NONE: Ulanish tranzaksiyalarni qo'llab-quvvatlamaydi.
  2. TRANSACTION_READ_UNCOMMITTED: Tranzaksiya boshqa tranzaksiyalardan tasdiqlanmagan ma'lumotlarni o'qishga ruxsat beradi (zaxiralash o'qish).
  3. TRANSACTION_READ_COMMITTED: Tranzaksiya faqat boshqa tranzaksiyalar tomonidan tasdiqlangan ma'lumotlarni ko'radi. Zaxiralash o'qish chiqarilgan, ammo takrorlanmaydigan o'qishlar mumkin.
  4. TRANSACTION_REPEATABLE_READ: Tranzaksiya takroriy o'qishlarda bir xil ma'lumotlarni ko'radi, agar ular tranzaksiya tomonidan o'zgartirilmagan bo'lsa. Zaxiralash o'qish va takrorlanmaydigan o'qishlarni chiqaradi, ammo fantomlar mumkin.
  5. TRANSACTION_SERIALIZABLE: Eng yuqori izolyatsiya darajasi. Tranzaksiyalar ketma-ketlikda bajariladi, go'yo ular ketma-ket bajarilmoqda. Zaxiralash o'qish, takrorlanmaydigan o'qish va fantomlarni chiqaradi. Maksimal muvofiqlikni ta'minlaydi, ammo ishlash tezligini pasaytirishi mumkin.

Izolyatsiya darajasi Connection.setTransactionIsolation(int level) metodi yordamida ulanish uchun o'rnatilishi mumkin. Misol:

// Repeatable Read darajasini o'rnatamiz
connection.setTransactionIsolation(Connection.TRANSACTION_REPEATABLE_READ);

Standart qiymat ma'lumotlar bazasi boshqaruv tizimiga bog'liq.

Hozirgi izolyatsiya darajasini olish uchun Connection.getTransactionIsolation() metodi ishlatiladi:

int isolationLevel = connection.getTransactionIsolation();
// Hozirgi darajani tekshirish
if (isolationLevel == Connection.TRANSACTION_READ_COMMITTED) {
    System.out.println("Hozirgi izolyatsiya darajasi READ_COMMITTED");
}

Ma'lumotlarning muvofiqligini va dastur ishlashini muvozanatlash uchun izolyatsiya darajasini ehtiyotkorlik bilan tanlash muhim.