Junior — Middle
Mi a különbség a PreparedStatement és a CallableStatement használata között adatbázisokkal való munkában?
sobes.tech MI
Válasz az MI-től
A PreparedStatement és a CallableStatement közötti fő különbség Java-ban, amikor adatbázisokkal dolgozunk:
-
PreparedStatement előre lefordított SQL-lekérdezések végrehajtására szolgál (általában SELECT, INSERT, UPDATE, DELETE). Biztonságosan lehet paramétereket beszúrni, így megelőzve az SQL-injekciókat.
-
CallableStatement arra szolgál, hogy tárolt eljárásokat vagy függvényeket hívjunk meg az adatbázisban. Támogatja mind a bemeneti, mind a kimeneti paramétereket.
A PreparedStatement használatának példája:
String sql = "SELECT * FROM users WHERE id = ?";
PreparedStatement ps = connection.prepareStatement(sql);
ps.setInt(1, 10);
ResultSet rs = ps.executeQuery();
A CallableStatement használatának példája:
CallableStatement cs = connection.prepareCall("{call getUserById(?)}");
cs.setInt(1, 10);
ResultSet rs = cs.executeQuery();
Így a PreparedStatement a szokásos paraméterezett lekérdezésekhez, a CallableStatement pedig az adatbázis eljárások hívásához használatos.