Junior — Middle
JDBC-те Statement және PreparedStatement сыныптарының қолданылуы мен өнімділігі тұрғысынан айырмашылықтары қандай?
sobes.tech AI
AI-дан жауап
Тұжырымдама:
- Параметрсіз қарапайым SQL сұрауларын орындау үшін пайдаланылады.
- Сұраулар әр орындағанда компиляцияланады.
- Динамикалық сұрауларды құру кезінде SQL-инъекцияларға осал, қауіпсіз емес.
PreparedStatement:
- Параметрленген сұрауларды плейсхолдерлермен (мысалы,
?) қолдануға мүмкіндік береді. - Сұрау бір рет компиляцияланады, содан кейін әртүрлі параметрлермен бірнеше рет орындалуы мүмкін.
- Бірдей сұрауды бірнеше рет шақырғанда өнімділікті арттырады.
- Қауіпсізірек, себебі параметрлер автоматты түрде экранирленеді, бұл SQL-инъекция қаупін азайтады.
Мысал:
String sql = "SELECT * FROM users WHERE id = ?";
PreparedStatement ps = connection.prepareStatement(sql);
ps.setInt(1, userId);
ResultSet rs = ps.executeQuery();
PreparedStatement-ті пайдаланыңыз, егер сұраулар әртүрлі параметрлермен қайталанатын болса немесе қауіпсіздік қажет болса.