Подготовленные операторы работают намного быстрее, если вам приходится выполнять один и тот же оператор несколько раз с разными данными.Это потому, что SQL будет проверять запрос только один раз, тогда как если вы просто используете оператор, он будет проверять запрос каждый раз.
Другое преимущество использования PreparedStatements состоит в том, чтобы избежать возникновения уязвимости SQL-инъекции - хотя в вашем случаеваш запрос настолько прост, что вы с ним не сталкивались.
Для вашего запроса разница между выполнением подготовленного оператора и оператором, вероятно, незначительна.
РЕДАКТИРОВАТЬ: В ответ на ваш комментарий нижевам нужно будет внимательно посмотреть на класс DAO, чтобы увидеть, что он делает.Например, если каждый раз, когда вызывается метод, он заново создает подготовленный оператор, тогда вы потеряете все преимущества использования подготовленного оператора.
То, чего вы хотите достичь, - это инкапсуляция вашего уровня персистентности, чтобы они не представляли собой конкретный вызов MySQL или Postgres или чего-либо еще, что вы используете, и в то же время использовали преимущества производительности и безопасности оттакие вещи, как готовые заявления.Чтобы сделать это, вам нужно полагаться на собственные объекты Java, такие как PreparedStatement.
Лично я бы создал свой собственный класс DAO для выполнения операций CRUD, используя Hibernate и API-интерфейс Java Persistence для инкапсуляции всего этого, и чтоследует использовать подготовленные заявления для обеспечения безопасности.Если у вас есть конкретный вариант использования для выполнения повторяющихся операций, я был бы склонен обернуть это в свой собственный объект.
Hibernate можно настроить для использования с любым поставщиком базы данных, которого вы используете через файл XML, итаким образом, он обеспечивает действительно аккуратную инкапсуляцию вашего персистентного слоя.Тем не менее, это довольно сложный продукт, чтобы получить право!