Sobes.tech
Junior — Middle
83

Was ist der Unterschied zwischen der Verwendung von PreparedStatement und CallableStatement bei der Arbeit mit Datenbanken?

Unternehmen wurden gefragt
СБЕР дейвайсыСБЕР дейвайсы

Antwort von AI

sobes.tech KI

Основное отличие между 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 — для вызова процедур базы данных.