Spring Framework'ning JDBC abstraksiyasining foydasini eng yaxshi tarzda quyidagi jadvalda keltirilgan harakatlar ketma-ketligi orqali ko'rsatish mumkin. Jadvalda Spring qanday vazifalarni bajara olishini va siz qanday vazifalarni hal qilishingiz kerakligini ko'rsatadi.
| Harakat | Spring | Siz |
|---|---|---|
| Ulanish parametrlari aniqlanishi. |
X |
|
| Ulanishni ochish. |
X |
|
| SQL-izhrosini belgilash. |
X |
|
| Parametrlarni e'lon qilish va ularning qiymatlarini taqdim etish |
X |
|
| Izhrosa tayyorlash va bajarish. |
X |
|
| Agar natijalar mavjud bo'lsa, ularni aylanib o'tish uchun sikl sozlash. |
X |
|
| Har bir iteratsiyani bajarish ishi. |
X |
|
| Har qanday istisnoni ishlash. |
X |
|
| Tranzaksiyalar bilan ishlash. |
X |
|
| Ulanish, izhros va natijalar to'plamini yopish. |
X |
Spring Framework JDBC API bilan ishlashni mashaqqatli qiladigan barcha past darajadagi vazifalarni bajaradi.
JDBC ma'lumotlar bazasiga kirish yondashuvini tanlash
JDBC ma'lumotlar bazasiga kirish asosini yaratish uchun bir nechta yondashuvlardan birini tanlashingiz mumkin. JdbcTemplate shablonining uchta variantidan tashqari, SimpleJdbcInsert va SimpleJdbcCall yordamida yangi yondashuv ma'lumotlar bazasi metama'lumotlarini optimallashtiradi va RSBMS obyektlari uslubi JDO Query strukturasiga o'xshashroq obyektga yo'naltirilgan yondashuvdan foydalanadi. Ushbu yondashuvlardan birini qo'llay boshlagach, baribir ularni aralashtirib, boshqa yondashuvning funksiyalaridan foydalanish imkoniyatiga ega bo'lasiz. Barcha yondashuvlar JDBC 2.0 standarti bilan mos keladigan drayverni talab qiladi va ba'zi kengaytirilgan funksiyalar JDBC 3.0 drayverni talab qiladi.
-
JdbcTemplateSpring'dagi JDBC'ga klassik va eng mashhur yondashuv hisoblanadi. Ushbu "past darajadagi" yondashuv va barcha boshqalar "parda ortida" JdbcTemplate shablonidan foydalanadi. -
NamedParameterJdbcTemplateJdbcTemplateni o'rab, an'anaviy JDBC plaseholderlari?o'rniga nomlangan parametrlarni taqdim etadi. Agar sizda SQL-buyruqlari uchun bir nechta parametrlar mavjud bo'lsa, ushbu yondashuv yaxshiroq hujjatlash va foydalanish qulayligini ta'minlaydi. -
SimpleJdbcInsertvaSimpleJdbcCallzarur konfiguratsiyani kamaytirish uchun ma'lumotlar bazasi metama'lumotlarini optimallashtiradi. Ushbu yondashuv kod yozishni osonlashtiradi, shuning uchun sizdan talab qilinadigan yagona narsa bu jadval yoki prosedura nomini va ustun nomlariga mos keladigan parametrlar Map ni taqdim etishdir. Bu faqat ma'lumotlar bazasi yetarli metama'lumotlarni taqdim etsa ishlaydi. Agar ma'lumotlar bazasi bu metama'lumotlarni taqdim etmasa, parametrlarning aniq konfiguratsiyasini ta'minlash kerak. -
RSBMS obyektlari -
MappingSqlQuery,SqlUpdatevaStoredProcedureda ma'lumotlar kirish darajasidagi boshlash vaqtida qayta ishlatiladigan va oqimda xavfsiz obyektlar yaratishni talab qiladi. Ushbu yondashuv JDO Query'ga asoslangan bo'lib, unda siz so'rovning satrini aniqlaysiz, parametrlarni e'lon qilasiz va so'rovni kompilyatsiya qilasiz. Buni amalga oshirgandan so'ng,execute(…),update(…), vafindObject(…)usullari turli parametr qiymatlari bilan bir necha marta chaqirilishi mumkin.
Paketlarning iyerarxiyasi
Spring Framework'dagi JDBC abstraksiyasi tarkibi to'rtta turli paketlardan iborat:
-
core:org.springframework.jdbc.corepaketiJdbcTemplateva uning turli xil qayta chaqirish interfeyslarini, shuningdek, ko'plab yordamchi sinflarni o'z ichiga oladi.org.springframework.jdbc.core.simplenomli yordamchi paketSimpleJdbcInsertvaSimpleJdbcCallsinflarini o'z ichiga oladi.org.springframework.jdbc.core.namedparamnomli boshqa yordamchi paketNamedParameterJdbcTemplateva bog'liq yordamchi sinflarni o'z ichiga oladi. Quyidagi bo'limlarga qarang: "JDBC asosiy sinflaridan foydalanib, JDBC ning asosiy ishlov berish va xatolar bilan ishlashni boshqarish", "JDBC paket operatsiyalari" va "JDBC operatsiyalariniSimpleJdbcsinflari yordamida soddalashtirish". -
datasource:org.springframework.jdbc.datasourcepaketiDataSourcega sodda kirishni taqdim etish uchun yordamchi sinfni va Java EE konteyneridan tashqarida o'zgarmagan JDBC kodini sinov va ishga tushirish uchun ishlatilishi mumkin bo'lganDataSourcening turli xil sodda realizatsiyalarini o'z ichiga oladi.org.springfamework.jdbc.datasource.embeddednomli yordamchi paket HSQL, H2 va Derby kabi Java ma'lumotlar bazasi dvigatellari yordamida o'rnatilgan ma'lumotlar bazalarini yaratishni qo'llab-quvvatlashni ta'minlaydi. Quyidagi bo'limlarga qarang: "Ma'lumotlar bazasi ulanishlarini boshqarish" va "O'rnatilgan ma'lumotlar bazalarini qo'llab-quvvatlash". -
object:org.springframework.jdbc.objectpaketi RSBMS so'rovlari, yangilanishlar va saqlangan protseduralarni oqimda xavfsiz, qayta ishlatiladigan obyektlar sifatida ifodalovchi sinflarni o'z ichiga oladi. Quyidagi bo'limga qarang: "JDBC operatsiyalarini Java obyektlari sifatida modellash". Ushbu yondashuv JDO'da modellashtirilgan, so'rovlardan qaytariladigan obyektlar tabiiy ravishda ma'lumotlar bazasidan uzilgan. Ushbu yuqori darajali JDBC abstraksiyasiorg.springframework.jdbc.corepaketidagi past darajali abstraksiyaga bog'liq. -
support:org.springframework.jdbc.supportpaketiSQLExceptionni o'zgartirish funksiyasini va ba'zi yordamchi sinflarni o'z ichiga oladi. JDBC ishlov berishida generatsiya qilingan istisnolarorg.springframework.daopaketida aniqlangan istisnolarga aylantiriladi (translyatsiya qilinadi). Bu Spring'da JDBC abstraksiyasi darajasidan foydalanadigan koddani JDBC yoki RSBMSga xos xatolarni qo'llanmasdan boshqarish imkonini beradi. Barcha aylantirilgan istisnolar tekshirilmaydigan, bu tiklash mumkin bo'lgan istisnolarni ushlash imkonini beradi va boshqa istisnolarga chaqiruvchi kodga tarqalishiga imkon beradi. Quyidagi bo'limlarga qarang: "SQLExceptionTranslator'dan foydalanish".
GO TO FULL VERSION