Sobes.tech
Junior — Middle

Ma'lumotlar bazasi bilan ishlashda PreparedStatement va CallableStatement ni ishlatish o'rtasidagi farq nima?

sobes.tech AI

AIdan javob

Java'da ma'lumotlar bazasi bilan ishlashda PreparedStatement va CallableStatement o'rtasidagi asosiy farq:

  • PreparedStatement oldindan kompilyatsiya qilingan SQL so'rovlarini bajarish uchun ishlatiladi (odatda SELECT, INSERT, UPDATE, DELETE). U xavfsiz tarzda parametrlarni joylashtirish imkonini beradi va SQL injeksiyalarining oldini oladi.

  • CallableStatement ma'lumotlar bazasida belgilangan saqlangan protseduralar yoki funksiyalarni chaqirish uchun mo'ljallangan. U kirish va chiqish parametrlarini qo'llab-quvvatlaydi.

PreparedStatement dan foydalanish misoli:

String sql = "SELECT * FROM users WHERE id = ?";
PreparedStatement ps = connection.prepareStatement(sql);
ps.setInt(1, 10);
ResultSet rs = ps.executeQuery();

CallableStatement dan foydalanish misoli:

CallableStatement cs = connection.prepareCall("{call getUserById(?)}");
cs.setInt(1, 10);
ResultSet rs = cs.executeQuery();

Shunday qilib, PreparedStatement odatiy parametrlangan so'rovlar uchun, CallableStatement esa ma'lumotlar bazasi protseduralarini chaqirish uchun ishlatiladi.