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