Sobes.tech
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.