Вопрос проверяет понимание работы JDBC, безопасности запросов и причин возникновения SQL-инъекций.
Короткий ответ
Statement формирует SQL-запрос как строку, а PreparedStatement использует параметры. В PreparedStatement SQL и данные передаются отдельно. Это предотвращает интерпретацию пользовательского ввода как части SQL-кода. Кроме безопасности, PreparedStatement может быть быстрее за счёт повторного использования плана запроса. Поэтому его используют по умолчанию.
Длинный ответ
Зарегистрироваться
Развернутый ответ доступен только зарегистрированным пользователям.