Создание PreparedStatements
может включать или не включать проверку синтаксиса SQL или даже обращения к серверу БД, что полностью зависит от используемого драйвера JDBC.Некоторые драйверы будут выполнять тестирование в обе стороны или проверять, другие - нет.
Так что на некоторых драйверах JDBC PreparedStatement
не более "подготовлен", чем обычный Statement
.(Другими словами: с некоторыми драйверами JDBC PreparedStatement
представляет ресурс на стороне сервера (аналогично Connection
), в то время как на других это чисто клиентская конструкция).
Однако, важное отличиеявляется то, что PreparedStatement
поможет вам обрабатывать динамические значения параметров таким образом, чтобы гарантированно избежать любых проблем с экранированием или форматированием, которые возникнут, если вы попытаетесь вставить значения в строку оператора SQL вручную и выполнить его с помощью обычного Statement
.
Эта функция независима от выбора «подготовки» оператора заранее или нет, поэтому он предоставляется каждым драйвером JDBC, даже если он не выполняет никакой другой подготовкишаги.