【发布时间】:2021-10-24 18:50:45
【问题描述】:
在运行 servlet 的 postmethod 时,我的语句不断出现错误。但是,当我只是尝试直接在数据库中执行此操作时,它工作得很好。
我使用的是 tomcat 9 服务器;和 postgres 数据库。 Java Openlogic 11;
我收到的消息是: 错误:列“doe”不存在 职位:61 指的是我要插入的值。
我在这里缺少什么?我还在学习,所以非常欢迎任何和所有信息。提前致谢。
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String firstname = request.getParameter("firstname");
String lastname = request.getParameter("lastname");
String location = request.getParameter("location");
Statement stmt;
try {
stmt = con.createStatement();
int result = stmt.executeUpdate(
"INSERT INTO testinserts (lastname, firstname, city) VALUES ("+ lastname + "," + firstname + "," + location + ");");
PrintWriter writer = response.getWriter();
if(result > 0){
writer.println("<H1>" + firstname + " created " + "</H1>");
} else {
writer.println("<H1>" + "none created " + "</H1>");
}
} catch (SQLException ex) {
PrintWriter writer = response.getWriter();
writer.println(ex.getMessage());
StackTraceElement[] stackTrace = ex.getStackTrace();
writer.println("<HTML>");
for(StackTraceElement st : stackTrace){
writer.println("<p style=\"color: red\">" + st.toString() + "</p>");
}
writer.println("</HTML>");
}
【问题讨论】:
-
添加正确的引号后(字符串值需要包含在 ' 中),删除结尾;从你的陈述