Junior — Middle
Каква е разликата между използването на PreparedStatement и CallableStatement при работа с бази данни?
sobes.tech AI
Отговор от AI
Основната разлика между PreparedStatement и CallableStatement в Java при работа с бази данни:
-
PreparedStatement се използва за изпълнение на предварително компилирани SQL заявки (обикновено SELECT, INSERT, UPDATE, DELETE). Позволява безопасно поставяне на параметри, предотвратявайки SQL инжекции.
-
CallableStatement е предназначен за извикване на съхранени процедури или функции, дефинирани в базата данни. Поддържа както входни, така и изходни параметри.
Пример за използване на PreparedStatement:
String sql = "SELECT * FROM users WHERE id = ?";
PreparedStatement ps = connection.prepareStatement(sql);
ps.setInt(1, 10);
ResultSet rs = ps.executeQuery();
Пример за използване на CallableStatement:
CallableStatement cs = connection.prepareCall("{call getUserById(?)}");
cs.setInt(1, 10);
ResultSet rs = cs.executeQuery();
Така PreparedStatement е за обикновени параметризирани заявки, а CallableStatement — за извикване на процедури в базата данни.