Java. SQL. sqlexception: no value specified for parameter 16

Source: Internet
Author: User

During practical training a few days ago, I made a video sharing website. During the test, I suddenly found a problem. It took about three hours to debug the website, write a blog to commemorate a mistake caused by your own bid.
Error description:

java.sql.SQLException: No value specified for parameter 16at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1055)at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:956)at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:926)at com.mysql.jdbc.PreparedStatement.fillSendPacket(PreparedStatement.java:2176)at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:1993)at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:1937)at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:1922)at com.sxu.common.ConnDatabaseUtil.Execute(ConnDatabaseUtil.java:46)at com.sxu.dao.ResourceDaoImpl.AddRecord(ResourceDaoImpl.java:37)at com.sxu.service.ResourceServiceImpl.upload(ResourceServiceImpl.java:23)at com.sxu.action.ResourceAction.Add(ResourceAction.java:59)at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)at java.lang.reflect.Method.invoke(Unknown Source)at com.opensymphony.xwork2.DefaultActionInvocation.invokeAction(DefaultActionInvocation.java:453)at com.opensymphony.xwork2.DefaultActionInvocation.invokeActionOnly(DefaultActionInvocation.java:292)at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:255)at org.apache.struts2.interceptor.debugging.DebuggingInterceptor.intercept(DebuggingInterceptor.java:256)at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)at com.opensymphony.xwork2.interceptor.DefaultWorkflowInterceptor.doIntercept(DefaultWorkflowInterceptor.java:176)at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)at com.opensymphony.xwork2.validator.ValidationInterceptor.doIntercept(ValidationInterceptor.java:265)at org.apache.struts2.interceptor.validation.AnnotationValidationInterceptor.doIntercept(AnnotationValidationInterceptor.java:68)at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)at com.opensymphony.xwork2.interceptor.ConversionErrorInterceptor.intercept(ConversionErrorInterceptor.java:138)at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)at com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:236)at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)at com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:236)at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)at com.opensymphony.xwork2.interceptor.StaticParametersInterceptor.intercept(StaticParametersInterceptor.java:190)at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)at org.apache.struts2.interceptor.MultiselectInterceptor.intercept(MultiselectInterceptor.java:75)at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)at org.apache.struts2.interceptor.CheckboxInterceptor.intercept(CheckboxInterceptor.java:90)at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)at org.apache.struts2.interceptor.FileUploadInterceptor.intercept(FileUploadInterceptor.java:243)at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)at com.opensymphony.xwork2.interceptor.ModelDrivenInterceptor.intercept(ModelDrivenInterceptor.java:100)at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)at com.opensymphony.xwork2.interceptor.ScopedModelDrivenInterceptor.intercept(ScopedModelDrivenInterceptor.java:141)at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)at com.opensymphony.xwork2.interceptor.ChainingInterceptor.intercept(ChainingInterceptor.java:145)at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)at com.opensymphony.xwork2.interceptor.PrepareInterceptor.doIntercept(PrepareInterceptor.java:171)at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)at com.opensymphony.xwork2.interceptor.I18nInterceptor.intercept(I18nInterceptor.java:176)at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)at org.apache.struts2.interceptor.ServletConfigInterceptor.intercept(ServletConfigInterceptor.java:164)at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)at com.opensymphony.xwork2.interceptor.AliasInterceptor.intercept(AliasInterceptor.java:192)at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)at com.opensymphony.xwork2.interceptor.ExceptionMappingInterceptor.intercept(ExceptionMappingInterceptor.java:187)at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)at org.apache.struts2.impl.StrutsActionProxy.execute(StrutsActionProxy.java:54)at org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:511)at org.apache.struts2.dispatcher.ng.ExecuteOperations.executeAction(ExecuteOperations.java:77)at org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.doFilter(StrutsPrepareAndExecuteFilter.java:91)at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:240)at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:164)at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:498)at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:164)at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100)at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:562)at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:394)at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:243)at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:188)at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:302)at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)at java.lang.Thread.run(Unknown Source)


All users who use Java programming know that when errors occur, a large piece of code is often provided, which is actually useful. Of course, the same is true for the following errors:

java.sql.SQLException: No value specified for parameter 16at com.sxu.common.ConnDatabaseUtil.Execute(ConnDatabaseUtil.java:46)at com.sxu.dao.UserDaoImpl.AddRecord(UserDaoImpl.java:37)at com.sxu.service.UserServiceImpl.register(UserServiceImpl.java:23)


You can think about it. The tool class written to connect to the database is certainly not wrong, because there are no problems with other modules, and the Action layer calls the service layer, the service simply calls the DaO layer, so it finally locates the DaO layer:

public void AddRecord(ResourceBean resource) throws ClassNotFoundException,SQLException {// TODO Auto-generated method stubString sql = "insert into t_resource(title, icon_url, file_name, resource_url, type, user_id, upload_time, " + "size, label, scan_count, download_count, play_count, state, manager_id, remark)" + "values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)";Object[] params = {resource.getTitle(),resource.getIcon_url(),resource.getFile_name(),resource.getResource_url(),resource.getType(),resource.getUser_id(),resource.getUpload_time(),resource.getSize(),resource.getLabel(),resource.getScan_count(),resource.getDownload_count(),resource.getPlay_count(),resource.getState(),resource.getManager_id(),resource.getRemark()};ConnDatabaseUtil.Execute(sql, params);}


But I haven't found any errors after reading it for half a day. I just went one step and jumped and disappeared. I was wondering that there was no problem with parameter settings, so I had been working on it for several hours, finally, I will look at SQL
The first parameter in the SQL statement is found to have one more ?, That is to say, if I write another parameter, I will let it go. Then I suddenly realized that the database was modified at noon and I forgot to modify it here,
For the errors here, eclipse does not prompt, so it took three hours. Fortunately, it finally solved the problem.
So I wrote a blog post to commemorate my negligence and use it as a training! At the same time, we also hope to help the same errors!

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.