Вставить целое число из формы 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();
Следующие ссылки могут помочь вам с основами, а также с рабочим примером:
- http://www.tutorialspoint.com/jdbc/jdbc-statements.htm
- http://www.tutorialspoint.com/jdbc/statement-object-example.htm
Хотя я не буду рекомендовать, и это не является общей практикой, чтобы включить код подключения JDBC в JSP, почему? Вот сервлет и JSP Best Practices для вас.
Надеюсь это поможет.
Использовать PreparedStatement
вместо обычного Statement
, Также используйте executeQuery()
вместо executeUpdate()
,