请参阅下面的代码......
//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
一起使用。有人可以帮我解决这个问题。
答案 0 :(得分:4)
您必须使用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 :(得分:0)
以下链接可以帮助您了解基础知识,并提供一个工作示例:
虽然我不建议在JSP中包含JDBC连接代码也不是一般做法,为什么?以下是您的Servlets and Jsp Best Practices。
希望这有帮助。
答案 2 :(得分:0)
使用PreparedStatement
代替常规Statement
。另外,请使用executeQuery()
代替executeUpdate()
。