JavaRush /Kurslar /All lectures for UZ purposes /Ma'lumotlar bazasiga ulanishni boshqarish

Ma'lumotlar bazasiga ulanishni boshqarish

All lectures for UZ purposes
Daraja, Dars
Mavjud

ConnectionFactory dan foydalanish

Spring R2DBC orqali ma'lumotlar bazasiga ulanishni ConnectionFactory orqali amalga oshiradi. ConnectionFactory R2DBC spetsifikatsiyasining bir qismi bo'lib, drayverlar uchun umumiy kirish nuqtasini ifodalaydi. Bu, konteyner yoki framework'ga ulanishlar poolini boshqarish va tranzaktsiyalarni boshqarishni koddan yashirish imkonini beradi. Dasturchi sifatida, sizga ma'lumotlar bazasiga qanday ulanish kerakligini batafsil bilish shart emas. Bu mas'uliyat ConnectionFactory ni o'rnatadigan administratorning zimmasida. Ehtimol, siz kodni ishlab chiqish va sinov qilishni ham amalga oshirasiz, lekin qanday qilib ishlab chiqarish ma'lumot manbasi sozlanganligini bilishga majbur emassiz.

Agar siz R2DBC darajasidan Spring orqali foydalansangiz, unda uchinchi tomon tomonidan taqdim etilgan ulanish poolini amalga oshiruvchi o'zizni sozlashingiz mumkin. Mashhur amalga oshirish R2DBC pool (r2dbc-pool). Spring distribusiyasidagi amalga oshirishlar faqat test maqsadlari uchun mo'ljallangan va pool bilan birlashtirishni ta'minlamaydi.

ConnectionFactory ni sozlash uchun:

  1. ConnectionFactory ni oddiygina R2DBC'dan ConnectionFactory olgandek ulang.

  2. R2DBC URL manzilini kiriting (to'g'ri qiymatni drayver hujjatlarida ko'ring).

Quyidagi misolda ConnectionFactory ni qanday sozlash ko'rsatilgan:

Java
ConnectionFactory factory = ConnectionFactories.get("r2dbc:h2:mem:///test?options=DB_CLOSE_DELAY=-1;DB_CLOSE_ON_EXIT=FALSE");
Kotlin
val factory = ConnectionFactories.get("r2dbc:h2:mem:///test?options=DB_CLOSE_DELAY=-1;DB_CLOSE_ON_EXIT=FALSE");

ConnectionFactoryUtils dan foydalanish

ConnectionFactoryUtils klassi, ConnectionFactory dan ulanishlarni o'rnatish va ular kerak bo'lsa yopish uchun statik metodlar taqdim etuvchi qulay va to'liq xususiyatli yordamchi klassdir.

Bu R2dbcTransactionManager kabi Context ga ulaning va unga bog'liq ulanishlarni qo'llab-quvvatlaydi.

SingleConnectionFactory dan foydalanish

SingleConnectionFactory klassi, har foydalanishdan keyin yopilmaydigan bitta Connection ni o'rab olish uchun DelegatingConnectionFactory interfeysining amalga oshirilishi hisoblanadi.

Agar ba'zi klient kod close ni chaqirsa va ulanish pooli mavjud deb faraz qilsa (suppressClose xususiyati true ga o'rnatilishi kerak bo'lsa), bu parametr jismoniy ulanishni o'rab turgan va uni yopish va bosimini qaytarib beruvchi proxyni qaytaradi. E'tibor bering, endi uni lokal Connection yoki shunga o'xshash ob'ektga o'tish mumkin emas.

SingleConnectionFactory asosan sinov klassi bo'lib, R2DBC drayveringiz bunday foydalanishga ruxsat bersa, quvurga qo'yishga bo'lgan maxsus talablar uchun ishlatilishi mumkin. ConnectionFactory pooliga nisbatan, bu har doim bitta va o'sha ulanishni qayta ishlatishga imkon beradi, bu jismoniy ulanishlarni ortiqcha yaratishdan qochadi.

TransactionAwareConnectionFactoryProxy dan foydalanish

TransactionAwareConnectionFactoryProxy - bu maqsadli ConnectionFactory ning proxysi. Proxy, ushbu maqsadli ConnectionFactory ni Spring tomonidan boshqariladigan tranzaktsiyalar bilan mosligini oshirish uchun o'raydi.

Agar siz Spring uchun R2DBC yordamchi vositalari bilan boshqa tarzda integratsiyalanmagan R2DBC klientidan foydalansangiz, bu klassdan foydalanish zarur. Shu holda, ushbu klientni ishlatishda davom etishingiz mumkin va shunga qaramay, ushbu klient Spring tomonidan boshqariladigan tranzaktsiyalarda ishtirok etish imkonini beradi. Odatda, ConnectionFactoryUtils ga to'g'ri kirish imkoniyati bilan R2DBC klientini integratsiyalash maqsadga muvofiqdir.

Batafsil ma'lumotni TransactionAwareConnectionFactoryProxy javadocida ko'ring.

R2dbcTransactionManager dan foydalanish

R2dbcTransactionManager klassi, alohida R2DBC ma'lumot manbalari uchun ReactiveTransactionManager ning amalga oshirilishi hisoblanadi. U R2DBC ulanishini ko'rsatilgan ulanish fabricasidan Context obunachisiga bog'laydi va potensial ravishda har bir ulanish fabrica uchun bir obunachi ulanishiga imkon beradi.

Kod ilovasi, R2DBC ulanishini ConnectionFactoryUtils.getConnection(ConnectionFactory) orqali olish kerak, R2DBC uchun oddiy ConnectionFactory.create() orniga.

Barcha framework klasslari (masalan, DatabaseClient) ushbu strategiyani tushmasdan ishlatadilar. Agar strategiyani qidirish ushbu tranzaktsiya menejeri bilan ishlatilmasa, u oddiy kabi ishlaydi. Shunday qilib, har qanday holatda uni ishlatishi mumkin.

R2dbcTransactionManager klassi, ulanishga qo'llaniladigan moslashuvchan izolyatsiya darajalarini qo'llab-quvvatlaydi.

Izohlar
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION