Разница между Statement и PreparedStatement
Опубликовано: 11 Августа, 2021
1. Заявление:
Он используется для доступа к вашей базе данных. Интерфейс операторов не может принимать параметры и полезен, когда вы используете статические операторы SQL во время выполнения. Если вы хотите выполнить SQL-запрос только один раз, этот интерфейс предпочтительнее, чем PreparedStatement.
Пример -
// Создание объекта утверждения Заявление GFG = con.createStatement (); // Выполнение инструкции GFG.executeUpdate ("СОЗДАТЬ ТАБЛИЦУ СТУДЕНТА (НОМЕР ИДЕНТИФИКАЦИИ НЕ НУЛЕВОЙ, ИМЯ VARCHAR)");
2. PreparedStatement:
Он используется, когда вы хотите многократно использовать операторы SQL. Интерфейс PreparedStatement принимает входные параметры во время выполнения.
Пример -
// Создание объекта PreparedStatement PreparedStatement GFG = con.prepareStatement ("обновить СТУДЕНТ, установить ИМЯ =? Где ID =?"); // Установка значений для заполнителей // Назначает "RAM" держателю первого места GFG.setString (1, «ОЗУ»); // Присваивает "512" второму заполнителю GFG.setInt (2, 512); // Выполнение PreparedStatement GFG.executeUpdate ();
Разница между CallableStatement и PreparedStatement:
Заявление | Подготовленное заявление |
---|---|
Он используется, когда SQL-запрос должен выполняться только один раз. | Он используется, когда SQL-запрос должен выполняться несколько раз. |
Вы не можете передавать параметры во время выполнения. | Вы можете передавать параметры во время выполнения. |
Используется для операторов CREATE, ALTER, DROP. | Используется для запросов, которые должны выполняться несколько раз. |
Производительность очень низкая. | Производительность лучше, чем Заявление. |
Это базовый интерфейс. | Он расширяет интерфейс оператора. |
Используется для выполнения обычных SQL-запросов. | Используется для выполнения динамических SQL-запросов. |
Мы не можем использовать оператор для чтения двоичных данных. | Мы можем использовать Preparedstatement для чтения двоичных данных. |
Он используется для операторов DDL. | Он используется для любого SQL-запроса. |
Мы не можем использовать оператор для записи двоичных данных. | Мы можем использовать Preparedstatement для записи двоичных данных. |
Для связи не используется двоичный протокол. | Для связи используется двоичный протокол. |