Вставить целое число из формы JSP в таблицу базы данных?

Смотрите мой код ниже...

//connect
//reading params from the form
String name = request.getParameter("name");
String year_prime = request.getParameter("year");
int year = Integer.parseInt(year_prime);

//inserting the params into table Students
stmt.executeUpdate("insert into students(name,year) values('"+name+"', year)");

//close connection

Я пытаюсь получить year значение, которое является intи вставьте его в таблицу базы данных. Однако я получаю сообщение об ошибке, и методы INSERT, кажется, работают только с Strings, Может кто-нибудь, пожалуйста, помогите мне с этой проблемой.

3 ответа

Вы должны использовать PreapredStatement, Из вашего поста я вижу, что у вас неверное значение для VALUES() задавать.

stmt.executeUpdate("insert into students(name,year) values ('" + name + "'," + year ")");

Выполнить работу с базой данных с помощью PreparedStatement будет легко и безопасно:

String sql="insert into students(name,year) values (?,?)";
PreparedStatement statement=cn.prepareStatement(sql);
statement.setString(1,name);
statement.setInt(2,year);
statement.executeUpdate();

Следующие ссылки могут помочь вам с основами, а также с рабочим примером:

  1. http://www.tutorialspoint.com/jdbc/jdbc-statements.htm
  2. http://www.tutorialspoint.com/jdbc/statement-object-example.htm

Хотя я не буду рекомендовать, и это не является общей практикой, чтобы включить код подключения JDBC в JSP, почему? Вот сервлет и JSP Best Practices для вас.

Надеюсь это поможет.

Использовать PreparedStatement вместо обычного Statement, Также используйте executeQuery() вместо executeUpdate(),

Другие вопросы по тегам