当前位置: 代码迷 >> Java Web开发 >> web交付页面出错,来个大神来看看啊
  详细解决方案

web交付页面出错,来个大神来看看啊

热度:5745   发布时间:2013-02-25 21:17:24.0
web提交页面出错,来个大神来看看啊!!!!
Java code
<%@ page language="java" import="java.util.*,java.sql.*,bbs.*"    pageEncoding="GB18030"%><%    request.setCharacterEncoding("UTF-8");       int pid = Integer.parseInt(request.getParameter("pid"));    int rootId = Integer.parseInt(request.getParameter("rootId"));    String title = request.getParameter("title");    System.out.println(title);    String cont = request.getParameter("cont");    System.out.println(cont);    Connection conn = DB.getConn();    String sql = "insert into article values(?,?,?,?,sysdate,?)";    PreparedStatement pstmt = DB.prepareStmt(conn, sql);        pstmt.setInt(1, pid);    pstmt.setInt(2, rootId);    pstmt.setString(3, title);    pstmt.setString(4, cont);    pstmt.setInt(5, 0);    pstmt.executeUpdate();    DB.close(pstmt);    DB.close(conn);%>

String sql = "insert into article values(?,?,?,?,sysdate,?)";
这样写提示出错:
  org.apache.jasper.JasperException: An exception occurred processing JSP page /replyDeal.jsp at line 24

21: pstmt.setString(3, title);
22: pstmt.setString(4, cont);
23: pstmt.setInt(5, 0);
24: pstmt.executeUpdate();
25: DB.close(pstmt);
26: DB.close(conn);
27: %>
  javax.servlet.ServletException: java.sql.SQLException: ORA-00947: 没有足够的值
org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:865)
org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:794)
org.apache.jsp.replyDeal_jsp._jspService(replyDeal_jsp.java:122)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:386)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
----------------------------------------------------------------------------
String sql = "insert into article values(null,?,?,?,?,sysdate,?)";
这样写提示出错:
  javax.servlet.ServletException: java.sql.SQLException: ORA-01400: 无法将 NULL 插入 ("SCOTT"."ARTICLE"."ID")
org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:865)
org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:794)
org.apache.jsp.replyDeal_jsp._jspService(replyDeal_jsp.java:122)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:386)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
----------------------------------------------------------------------------
数据库里ID号设置的是自增的
create sequence seq_article increment by 1 start with 1;
到底是哪里出错了,求解.....

------解决方案--------------------------------------------------------
楼主 把sql语句换成这样子:

String sql = "insert into article values(seq_article.nextval,?,?,?,?,sysdate,?)";

------解决方案--------------------------------------------------------
你在插一条试试 ,看是不是接着增长的,
有数据插入过的,自增会自己从下一个开始
另外建议不使用自增长来做主键
------解决方案--------------------------------------------------------
探讨
引用:

楼主 把sql语句换成这样子:
  相关解决方案