晕死啊,为什么我老出现这个错误!我的sql语句:
 String sql =insert into topicclassify(id,eng_id,use_id,topicname,updatetime,startsearchtime,state,clusterid,userid,enginetype,maxresultnum,resultorder,badfeelingswords,middlefeelingswords,goodfeelingswords,topictext,filterdict)values(?,1,1,?,?,?,1,1,1,1,1,1,?,?,?,?,?)";servlet的add:
protected void add(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String id = request.getParameter("id");
String topicname = request.getParameter("topicname");
String topictext = request.getParameter("topictext");
String badfeelingswords = request.getParameter("badfeelingswords");
String middlefeelingswords = request.getParameter("middlefeelingswords");
String goodfeelingsword = request.getParameter("goodfeelingsword");
String filterdict = request.getParameter("filterdict");

Topic topic = new Topic();

topic.setId(Integer.parseInt(id));
topic.setTopicname(topicname);
topic.setTopictext(topictext);
topic.setUpdatetime(new Date());
topic.setStartsearchtime(new Date());
topic.setBadfeelingswords(badfeelingswords);
topic.setMiddlefeelingswords(middlefeelingswords);
topic.setGoodfeelingsword(goodfeelingsword);
topic.setFilterdict(filterdict);
这是怎么回事啊??大家帮帮我!

解决方案 »

  1.   

    出错的代码你没写出来,应该是数据对象到数据库参数进行set时类型错误或者有参数没有setpstmt = connect.createP....
    pstmt.setTypexxx(1,---此处从1开始。
      

  2.   

    java.sql.SQLException: ORA-01006: 赋值变量不存在 at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:134)
    at oracle.jdbc.ttc7.TTIoer.processError(TTIoer.java:289)
    at oracle.jdbc.ttc7.Oall7.receive(Oall7.java:573)
    at oracle.jdbc.ttc7.TTC7Protocol.doOall7(TTC7Protocol.java:1891)
    at oracle.jdbc.ttc7.TTC7Protocol.parseExecuteFetch(TTC7Protocol.java:1093)
    at oracle.jdbc.driver.OracleStatement.executeNonQuery(OracleStatement.java:2047)
    at oracle.jdbc.driver.OracleStatement.doExecuteOther(OracleStatement.java:1940)
    at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:2709)
    at oracle.jdbc.driver.OraclePreparedStatement.executeUpdate(OraclePreparedStatement.java:589)
    at com.goonie.mytitle.TopicDAOImpl.addTopic(TopicDAOImpl.java:59)
    at com.goonie.mytitle.TopicServiceImpl.addTopic(TopicServiceImpl.java:17)
    at com.goonie.mytitle.TopicServlet.add(TopicServlet.java:67)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:585)
    at com.goonie.mytitle.BaseServlet.service(BaseServlet.java:30)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:868)
    at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:663)
    at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
    at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
    at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
    at java.lang.Thread.run(Thread.java:595)
      

  3.   

    at com.goonie.mytitle.TopicDAOImpl.addTopic(TopicDAOImpl.java:59)
    看看是哪句话
      

  4.   

    楼上朋友,是这句:pstmt.executeUpdate();....
      

  5.   

    不是一个新的对象吗?
      一个transient对象你去update, 会有错吧
    你的意思是不是去save它啊
      

  6.   

    是啊 我的DAOIML:
    public void addTopic(Topic topic) {

      String sql = "insert into topicclassify (id,eng_id,use_id,topicname,updatetime,startsearchtime,state,clusterid,userid,enginetype,maxresultnum,resultorder,badfeelingswords,middlefeelingswords,goodfeelingswords,topictext,filterdict)" +
       "values(?,1,1,?,?,?,1,1,1,1,1,1,?,?,?,?,?)";

            Connection conn = DBConnection.getConnection();

    PreparedStatement pstmt = null;

    try {
    pstmt = conn.prepareStatement(sql);
    pstmt.setInt(1, topic.getId());
    pstmt.setInt(2, topic.getEng_id());
    pstmt.setInt(3, topic.getUse_id());
    pstmt.setString(4, topic.getTopicname());
    pstmt.setTimestamp(5, new Timestamp(topic.getUpdatetime().getTime()));
    pstmt.setTimestamp(6, new Timestamp(topic.getStartsearchtime().getTime()));
    pstmt.setInt(7, topic.getState());
    pstmt.setInt(8, topic.getClusterid());
    pstmt.setInt(9, topic.getUserid());
    pstmt.setString(10, topic.getEnginetype());
    pstmt.setInt(11, topic.getMaxresultnum());
    pstmt.setInt(12, topic.getResultorder());
    pstmt.setString(13, topic.getBadfeelingswords());
    pstmt.setString(14, topic.getMiddlefeelingswords());
    pstmt.setString(15, topic.getGoodfeelingswords());
    pstmt.setString(16, topic.getTopictext());
    pstmt.setString(17, topic.getFilterdict());
    pstmt.executeUpdate();


    } catch (SQLException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }finally{
    DBConnection.close(pstmt);
    DBConnection.close(conn);

    }
      

  7.   

    把SQL语句里面的1全部改成?就可以了!