Они предварительно скомпилированы (один раз), что ускоряет повторное выполнение динамического SQL (при изменении параметров)
Кэширование операторов базы данных повышает производительность выполнения БД
В базах данных хранятся кэши планов выполнения для ранее выполненных операторов.Это позволяет ядру базы данных повторно использовать планы для операторов, которые были выполнены ранее.Поскольку PreparedStatement использует параметры, каждый раз, когда он выполняется, он выглядит как один и тот же SQL, база данных может повторно использовать предыдущий план доступа, уменьшая обработку.Операторы «встраивают» параметры в строку SQL и поэтому не отображаются в БД в качестве одного и того же SQL, что предотвращает использование кэша.
Двоичный протокол связи означает меньшую пропускную способность и более быстрые вызовы на связьСервер БД
Подготовленные операторы обычно выполняются через двоичный протокол, отличный от SQL.Это означает, что в пакетах меньше данных, поэтому связь с сервером происходит быстрее.Как правило, сетевые операции на порядок быстрее, чем операции с дисками, которые на порядок быстрее операций ЦП в оперативной памяти.Следовательно, любое уменьшение объема данных, передаваемых по сети, будет иметь хорошее влияние на общую производительность.
Они защищают от внедрения SQL путем экранирования текста для всех предоставленных значений параметров.
Они обеспечивают более сильное разделение между кодом запроса и значениями параметров (по сравнению со связанными строками SQL), повышая удобочитаемость и помогая сопровождающим кода быстро понимать входные и выходные данные запроса.
В java можно вызывать getMetadata () и getParameterMetadata () для отражения полей набора результатов и полей параметров соответственно
В java интеллектуально принимаетJava-объекты в качестве типов параметров через setObject, setBoolean, setByte, setDate, setDouble, setDouble, setFloat, setInt, setLong, setShort, setTime, setTimestamp - он преобразуется в формат типа JDBC, который понятен для DB (не только для формата toString ()).
В Java принимает SQL-массивы в качестве параметраТип тер через метод setArray
В Java принимает CLOB, BLOB, OutputStreams и Readers в качестве параметров «подачи» через методы setClob / setNClob, setBlob, setBinaryStream, setCharacterStream / setAsciiStream / setNCharacterStream соответственно,
В java позволяет устанавливать специфичные для БД значения для SQL DATALINK, SQL ROWID, SQL XML и NULL с помощью методов setURL, setRowId, setSQLXML и setNull
В Java наследует все методы из Statement.Он наследует метод addBatch и дополнительно позволяет добавлять набор значений параметров, чтобы соответствовать набору пакетных команд SQL с помощью метода addBatch.
В java специальный тип PreparedStatement (подкласс CallableStatement) позволяет выполнять хранимые процедуры - поддерживая высокую производительность, инкапсуляцию, процедурное программирование и SQL, администрирование / обслуживание / настройку БД логики и использование собственной логики и функций БД