0

请参阅下面的代码...

//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值,即 an int,并将其插入数据库表中。但是我收到一个错误,并且 INSERT 方法似乎只适用于Strings. 有人可以帮我解决这个问题。

4

3 回答 3

4

您应该必须使用PreapredStatement. 从您的帖子中,我可以看到您的VALUES()set 值不正确。

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();
于 2012-06-25T03:04:24.083 回答
0

使用 aPreparedStatement而不是常规的Statement. 另外,使用executeQuery()代替executeUpdate().

于 2012-06-24T18:36:39.240 回答
0

以下链接可能会帮助您了解基础知识以及工作示例:

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

虽然我不会推荐,而且在 JSP 中包含 JDBC 连接代码也不是一般做法,但为什么呢?这是适合您的Servlet 和 Jsp 最佳实践

希望这可以帮助。

于 2012-06-24T14:01:05.640 回答