Разница между 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 для записи двоичных данных.
Для связи не используется двоичный протокол. Для связи используется двоичный протокол.