Просто используйте PreparedStatement
вместо Statement
.
То есть используйте
String sql = "INSERT INTO tbl (col1, col2, col3) VALUES (?, ?, ?)";
preparedStatement = connection.prepareStatement(sql);
preparedStatement.setString(1, col1);
preparedStatement.setString(2, col2);
preparedStatement.setString(3, col3);
preparedStatement.executeUpdate();
вместо
String sql = "INSERT INTO tbl (col1, col2, col3) VALUES ('" + col1 + "', '" + col2 + "', '" + col3 + "')";
statement = connection.createStatement();
statement.executeUpdate(sql);
PreparedStatement
также предлагает удобные методы установки для других типов, таких как setInt()
, setDate()
, setBinaryStream()
и так далее.
Обратите внимание, что эта проблема не связана с JSP.Это связано с Java в целом.Написание сырого кода Java в классе JSP также считается плохой практикой .Рекомендуется создать отдельный класс, который выполняет все задачи взаимодействия с БД в конкретной таблице, которая также называется классом DAO (Data Access Object).Затем вы можете импортировать / использовать этот класс DAO в классе сервлета.
См. Также: