严重: servlet.service() for servlet jsp threw exception
com.mysql.jdbc.exceptions.jdbc4.mysqlsyntaxerrorexception: unknown column '??????' in 'field list'
at sun.reflect.nativeconstructoraccessorimpl.newinstance0(native method)
at sun.reflect.nativeconstructoraccessorimpl.newinstance(nativeconstructoraccessorimpl.java:39)
at sun.reflect.delegatingconstructoraccessorimpl.newinstance(delegatingconstructoraccessorimpl.java:27)
at java.lang.reflect.constructor.newinstance(constructor.java:513)
at com.mysql.jdbc.util.handlenewinstance(util.java:406)
at com.mysql.jdbc.util.getinstance(util.java:381)
at com.mysql.jdbc.sqlerror.createsqlexception(sqlerror.java:1030)
at com.mysql.jdbc.sqlerror.createsqlexception(sqlerror.java:956)
at com.mysql.jdbc.mysqlio.checkerrorpacket(mysqlio.java:3491)
at com.mysql.jdbc.mysqlio.checkerrorpacket(mysqlio.java:3423)
at com.mysql.jdbc.mysqlio.sendcommand(mysqlio.java:1936)
at com.mysql.jdbc.mysqlio.sqlquerydirect(mysqlio.java:2060)
at com.mysql.jdbc.connectionimpl.execsql(connectionimpl.java:2536)
at com.mysql.jdbc.statementimpl.executeupdate(statementimpl.java:1564)
at com.mysql.jdbc.statementimpl.executeupdate(statementimpl.java:1485)
at org.apache.jsp.insert_jsp._jspservice(insert_jsp.java:100)
at org.apache.jasper.runtime.httpjspbase.service(httpjspbase.java:70)
at javax.servlet.http.httpservlet.service(httpservlet.java:723)
at org.apache.jasper.servlet.jspservletwrapper.service(jspservletwrapper.java:388)
at org.apache.jasper.servlet.jspservlet.servicejspfile(jspservlet.java:313)
at org.apache.jasper.servlet.jspservlet.service(jspservlet.java:260)
at javax.servlet.http.httpservlet.service(httpservlet.java:723)
at org.apache.catalina.core.applicationfilterchain.internaldofilter(applicationfilterchain.java:290)
at org.apache.catalina.core.applicationfilterchain.dofilter(applicationfilterchain.java:206)
at org.apache.catalina.core.standardwrappervalve.invoke(standardwrappervalve.java:233)
at org.apache.catalina.core.standardcontextvalve.invoke(standardcontextvalve.java:191)
at org.apache.catalina.core.standardhostvalve.invoke(standardhostvalve.java:127)
at org.apache.catalina.valves.errorreportvalve.invoke(errorreportvalve.java:103)
at org.apache.catalina.core.standardenginevalve.invoke(standardenginevalve.java:109)
at org.apache.catalina.connector.coyoteadapter.service(coyoteadapter.java:293)
at org.apache.coyote.http11.http11nioprocessor.process(http11nioprocessor.java:891)
at org.apache.coyote.http11.http11nioprotocol$http11connectionhandler.process(http11nioprotocol.java:750)
at org.apache.tomcat.util.net.nioendpoint$socketprocessor.run(nioendpoint.java:2282)
at java.util.concurrent.threadpoolexecutor$worker.runtask(threadpoolexecutor.java:886)
at java.util.concurrent.threadpoolexecutor$worker.run(threadpoolexecutor.java:908)
at java.lang.thread.run(thread.java:619)
------解决方案--------------------
这个错很简单
从这代码可以看出 : String sql="INSERT INTO STUDENT VALUES("+id+","+name+")";
如果 我的 id=1,name=adf 那么组合成的字符串就是
INSERT INTO STUDENT VALUES(1,adf ) 你可以尝试去执行这句SQL,肯定会报错
正确的写法应该是 INSERT INTO STUDENT VALUES(1,'adf' ); --数字类型可以不用加单引号
所以
应该是 String sql="INSERT INTO STUDENT VALUES("+id+",'"+name+"')";
------解决方案--------------------
遇见这种数据库语句的问题,考虑到语句有字符串的的拼接,你可以用
System.out.print(sql);先将你的语句输出,这样就很容易发现有没有错误。
HTML怎么学习?HTML怎么入门?HTML在哪学?HTML怎么学才快?不用担心,这里为大家提供了HTML速学教程(入门课程),有需要的小伙伴保存下载就能学习啦!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号