将数据插入表-jsp错误
我需要一些将数据插入数据库的帮助。这是我的ATM机:将数据插入表-jsp错误,jsp,insert,Jsp,Insert,我需要一些将数据插入数据库的帮助。这是我的ATM机: <%@ page language="java" import="java.sql.*" %> <% String url= "jdbc:mysql://localhost:3306/reclamacoes"; String titulo=request.getParameter("titulo"); String reclamacao=request.getParameter("reclamacao")
<%@ page language="java" import="java.sql.*" %>
<%
String url= "jdbc:mysql://localhost:3306/reclamacoes";
String titulo=request.getParameter("titulo");
String reclamacao=request.getParameter("reclamacao");
try {
String insert = "INSERT INTO reclamacoes (id_utilizador, titulo, reclamacao)" + "VALUES (?, ?, ?, ?, ?)";
Class.forName("com.mysql.jdbc.Driver");
Connection con = DriverManager.getConnection(url, "root", "root");
PreparedStatement ps = con.prepareStatement(insert);
ps.setString(1, session.getAttribute("id"));
ps.setString(2, titulo);
ps.setString(3, reclamacao);
ps.executeUpdate();
con.close();
}catch (ExcepLon ex) {
out.println ("ERRO: Insert");
}
这给了我一个错误:
org.apache.jasper.jaspereException:无法为JSP编译类:
jsp文件的第15行出现错误:
/recurso/grava_reclamacao.jsp在
类型PreparedStatement不适用于参数(int,
对象)12:连接con=
getConnection(url,“根”,“根”);13:14:
编制的报表ps=合同编制报表(插入);15:
ps.setString(1,session.getAttribute(“id”);16:
ps.setString(2,titulo);17:ps.setString(3,
雷克拉玛曹);18:ps.executeUpdate()
jsp文件的第20行出现错误:
/无法将recurso/grava_reclamacao.jsp ExcepLon解析为类型
17:ps.setString(3,reclamacao);18:
ps.executeUpdate();19:con.close();20:}捕获
(例外情况除外){21:out.println(“ERRO:Insert”);22:
}23:%>
堆栈跟踪:
org.apache.jasper.compiler.DefaultErrorHandler.javacError(DefaultErrorHandler.java:103)
org.apache.jasper.compiler.ErrorDispatcher.javacError(ErrorDispatcher.java:366)
org.apache.jasper.compiler.JDTCompiler.generateClass(JDTCompiler.java:476)
org.apache.jasper.compiler.compiler.compile(compiler.java:378)
org.apache.jasper.compiler.compiler.compile(compiler.java:353)
org.apache.jasper.compiler.compiler.compile(compiler.java:340)
org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:657)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:357)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334)
javaservlet.http.HttpServlet.service(HttpServlet.java:727)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
我在连接线上找不到错误,我觉得没问题。除了jdbc驱动程序,我还需要其他包吗
谢谢大家第一个错误:
类型PreparedStatement中的方法setString(int,String)不适用于参数(int,Object)
您需要对从会话中提取的内容进行类型转换,因为默认情况下,它将显示为对象:
ps.setString(1, (String)session.getAttribute("id"));
第二个错误:
ExcepLon无法解析为类型
在catch块中,您将Exception
拼错为“ExcepLon”试试这个
<%@ page language="java" import="java.sql.*" %>
<%
String url= "jdbc:mysql://localhost:3306/reclamacoes";
String titulo=request.getParameter("titulo");
String reclamacao=request.getParameter("reclamacao");
try{
String insert = "INSERT INTO "
+ " reclamacoes(id_utilizador, titulo, reclamacao) "
+ "VALUES(?, ?, ?)";
Class.forName("com.mysql.jdbc.Driver");
Connection con = DriverManager.getConnection(url, "root", "root");
PreparedStatement ps = con.prepareStatement(insert);
String id = (String) session.getAttribute("id");
ps.setString(1, id );
ps.setString(2, titulo);
ps.setString(3, reclamacao);
ps.executeUpdate();
}
catch(Exception ex){
out.print(ex);
}
这里的ExcepLon
是什么?它是您的自定义类吗?如果是,则在JSP中导入它;如果不是,则将其更改为异常
。再次查看日志jsp文件中的第20行出现错误:
以及第20行的内容catch(ExcepLon ex)
在插入
中,您将值插入到3列中,但仍然指定了5个值值(?,,,,,,,?)
。这导致了错误嘿!这很有效,非常感谢:p整数我找不到那个错误。。。但我发现了例外:)谢谢