8-modul · 6-dars: Spring JDBC
Daraja: Ilg'or
Spring JDBC. Spring Framework bo‘yicha nazariya, amaliy namuna va mustaqil mashq.
Tushuntirish
## Dars maqsadi Spring JDBC tushunchalarini farqlash, nima uchun kerakligini izohlash va kichik misolda qo‘llash.
## Nazariya Spring JDBC JDBCni almashtiruvchi yangi database emas, uning ustidagi yordamchi abstraksiyadir. JdbcTemplate connection olish/qaytarish, statement va result set lifecycle, exception translation kabi takror kodni boshqaradi. SQL va mapping baribir dasturchi mas'uliyati. DataAccessException hierarchy checked SQLException bilan ishlashni soddalashtiradi. JdbcTemplateda odatda ? parametrlar, NamedParameterJdbcTemplateda :name ko'rinishidagi nomlangan parametrlar ishlatiladi. Nomlar ko'p parametrli SQLni o'qishni osonlashtiradi, lekin u ham parametrlarni xavfsiz bog'lashga tayanadi. RowMapper har natija qatorini obyektga aylantiradi. Bitta natija kutilgan so'rovda nol yoki ko'p qator chiqishi uchun aniq xatti-harakat belgilang. SimpleJdbcInsert insert va generated key olishni soddalashtiradi; SimpleJdbcCall stored procedure yoki function chaqirishga yordam beradi. Tranzaksiya Spring transaction manager bilan service chegarasida boshqariladi. ORM shart bo'lmagan, aniq SQL va murakkab hisobot kerak bo'lgan holatda Spring JDBC qulay tanlovdir.
## Manbalar [Moduldagi savollar yo‘nalishi](https://github.com/jlkesh/pdp_online_java_lessons/blob/main/interviewquestions/8-module%28Spring%20Introduction%29.md) [Rasmiy qo‘llanma](https://docs.spring.io/spring-framework/reference/)
Kod quyida o‘quv namunasi sifatida berilgan. To‘liq ilova uchun import, dependency va konfiguratsiya kerak bo‘lishi mumkin. SQLni faqat ajratilgan test bazasida bajaring.
Kod misoli
var params = java.util.Map.of("min", 18);
var names = namedJdbc.queryForList(
"SELECT name FROM student WHERE age >= :min", params, String.class);
// namedJdbc — konfiguratsiya qilingan NamedParameterJdbcTemplate.
Keng tarqalgan xatolar
- JdbcTemplate mavjudligi SQLni string concatenation bilan tuzishni xavfsiz qilib qo'ymaydi.
Mashqlar
- Bir parametrli qidiruvni oddiy JDBC va JdbcTemplate bilan yozib lifecycle kodini solishtiring.
- JdbcTemplate bilan parametrli va string qo'shishli so'rov yozib, xavfsizlik farqini tushuntiring.
Teglar: nazariya, pdp, modul-08