Junior — Middle
Aký je rozdiel medzi používaním PreparedStatement a CallableStatement pri práci s databázami?
sobes.tech AI
Odpoveď od AI
Hlavný rozdiel medzi PreparedStatement a CallableStatement v Jave pri práci s databázami:
-
PreparedStatement sa používa na vykonávanie vopred skompilovaných SQL dopytov (zvyčajne SELECT, INSERT, UPDATE, DELETE). Umožňuje bezpečne vkladať parametre a zabraňuje SQL injekciám.
-
CallableStatement je určený na volanie uložených procedúr alebo funkcií definovaných v databáze. Podporuje vstupné aj výstupné parametre.
Príklad použitia PreparedStatement:
String sql = "SELECT * FROM users WHERE id = ?";
PreparedStatement ps = connection.prepareStatement(sql);
ps.setInt(1, 10);
ResultSet rs = ps.executeQuery();
Príklad použitia CallableStatement:
CallableStatement cs = connection.prepareCall("{call getUserById(?)}");
cs.setInt(1, 10);
ResultSet rs = cs.executeQuery();
Takže, PreparedStatement je pre bežné parametrizované dopyty, zatiaľ čo CallableStatement je na volanie databázových procedúr.