String sql="insert into k.fil(uname,name) values(?,?)";
 String sqll="update k.user SET num=1 WHERE name="+"'"+una+"'";
            Statement stm=conn.createStatement();
                        
           PreparedStatement pt=conn.prepareStatement(sql);
           pt.setString(1,un);
           pt.setString(2,una);
            pt.execute();
           pt.close();
           stm.execute(sqll);
           stm.close();
          }Stacktrace:
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:519)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:410)
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)
root cause javax.servlet.ServletException: java.sql.SQLException: Field 'num' doesn't have a default value
org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:865)
org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:794)
org.apache.jsp.mk_jsp._jspService(mk_jsp.java:117)
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)
root cause java.sql.SQLException: Field 'num' doesn't have a default value
com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1055)
com.mysql.jdbc.SQLError.createSQLException(SQLError.java:956)
com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3491)
com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3423)
com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1936)
com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2060)
com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2542)
com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:1734)
com.mysql.jdbc.PreparedStatement.execute(PreparedStatement.java:995)
org.apache.jsp.mk_jsp._jspService(mk_jsp.java:95)
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)num 是int型的。我把它的默认值设置成0,还是有错。这是什么原因造成的。求解。

解决方案 »

  1.   

    创建的SQL语法有错误。没定义默认值。
    应该是你 的num没有给出类型
      

  2.   

    javax.servlet.ServletException: java.sql.SQLException: Field 'num' doesn't have a default value
      

  3.   

    字段定义为not null且没有默认值
    代码中insert的时候也没有给值,所以出错
      

  4.   

    doesn't have a default value这不是有提示吗 
      

  5.   

    Field 'num' doesn't have a default value
      

  6.   

    报错是遇到SQL语句错误的时候  最好是在方法里面最后一行打印一下sql语句 然后把sql语句复制粘贴到SQL查询分析器里面调试 这样比较好...
      

  7.   

    我也知道是SQL的错误,问题是怎么改。
      

  8.   

    insert 和udpate 不是对应的同一个表。