Không phải là chuyên gia về ứng dụng web, gần đây tôi đang viết một ứng dụng web nhỏ cho ứng dụng di động của tôi bằng servlet. Chương trình nghị sự của tôi là nhận dữ liệu từ khách hàng và đưa nó vào trong db. mọi thứ đang chạy tốt, ngoại trừ câu lệnh chèn cơ sở dữ liệu của tôi, mà tôi đang cố gắng đạt được bằng cách sử dụng PreparedStatement.Câu lệnh đã chuẩn bị Chỉ số tham số ngoài phạm vi (0 <1)
// This is how my insert statement looks like
private String INSERT_INTO_DEVICES = "INSERT INTO travlemate.devices (owner,"
+ "deviceid,gcmid) VALUES (?,?,?)";
// This is how am trying to insert
PreparedStatement preparedStmt = mConn.prepareStatement(INSERT_INTO_DEVICES);
preparedStmt.setString(0, data.getDeviceNumber());
preparedStmt.setString(1, data.getDeviceID());
preparedStmt.setString(2,data.getGcmId());
preparedStmt.execute();
mConn.close();
nhưng trong khi thực hiện nhiệm vụ này, đang nhận sau ngoại lệ
java.sql.SQLException: Parameter index out of range (0 < 1).
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:910)
at com.mysql.jdbc.PreparedStatement.setInternal(PreparedStatement.java:2791)
at com.mysql.jdbc.PreparedStatement.setString(PreparedStatement.java:3627)
at com.mkgcorp.travelweb.data.DataManager.registerGCMData(DataManager.java:35)
at com.mkgcorp.travelweb.controller.Loader.doPost(Loader.java:46)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:644)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:725)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:291)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:219)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:106)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:501)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:142)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79)
at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:610)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:88)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:537)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1085)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:658)
at org.apache.coyote.http11.Http11NioProtocol$Http11ConnectionHandler.process(Http11NioProtocol.java:222)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1556)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1513)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Unknown Source)
tôi đã cố gắng nghiêm túc tất cả các loại điều đó là có khả năng, nhưng ngoại lệ này không được đi xa, bất kỳ ý tưởng về giống nhau không?
Cảm ơn, chỉ số Techfist
Đó là một trong những khác biệt ít phiền toái, nhưng các chỉ số báo cáo đã chuẩn bị bắt đầu tại 1 không 0 – MadProgrammer