Как исправить исключение «Индекс параметра вне диапазона» - PullRequest
0 голосов
/ 20 июня 2019

Я пытаюсь вставить некоторые данные в базу данных, но получаю исключение. Может кто-нибудь решить это за меня?

public void newGuestHistory(Booking booking) {
        try {
            connection = DBConnection.getInstance();

            preparedStatement = connection.prepareStatement(QueryUtil.queryByID(CommonConstants.QUERY_ID_INSERT_GUEST_HISTORY));

            preparedStatement.setString(CommonConstants.COLUMN_INDEX_ONE, CommonUtil.generateIds(getHistoryIds()));
            preparedStatement.setString(CommonConstants.COLUMN_INDEX_TWO, booking.getRoomNo());
            preparedStatement.setString(CommonConstants.COLUMN_INDEX_THREE, booking.getfName());
            preparedStatement.setString(CommonConstants.COLUMN_INDEX_FOUR, booking.getlName());
            preparedStatement.setString(CommonConstants.COLUMN_INDEX_FIVE, booking.getNIC());
            preparedStatement.setString(CommonConstants.COLUMN_INDEX_SIX, booking.getContactNo());
            preparedStatement.setInt(CommonConstants.COLUMN_INDEX_SEVEN, booking.getNoOfNights());
            preparedStatement.setString(CommonConstants.COLUMN_INDEX_EIGHT, booking.getCheckInOut());

            preparedStatement.executeUpdate();
        } catch (ClassNotFoundException | SQLException | SAXException | IOException | ParserConfigurationException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }

Здесь класс DBConnetion возвращает экземпляр для соединения с базой данных. Все индексы параметров предварительно определены в классе CommonConstants и сохранены конечные переменные. Метод queryByID () вернет соответствующий запрос. Метод generateIds () в классе CommonUtil возвращает значение String (которое является сгенерированным идентификатором, связанным с моей программой)

Я закончил с этим исключением:

java.sql.SQLException: Parameter index out of range (2 > number of parameters, which is 0).
    at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
    at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
    at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:89)
    at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:63)
    at com.mysql.cj.jdbc.ClientPreparedStatement.checkBounds(ClientPreparedStatement.java:1408)
    at com.mysql.cj.jdbc.ClientPreparedStatement.getCoreParameterIndex(ClientPreparedStatement.java:1421)
    at com.mysql.cj.jdbc.ClientPreparedStatement.setString(ClientPreparedStatement.java:1788)
    at com.itp.services.CheckInOutImpl.newGuestHistory(CheckInOutImpl.java:103)
    at com.itp.services.CheckInOutImpl.checkOut(CheckInOutImpl.java:74)
    at com.itp.servlets.CheckOutServlet.doPost(CheckOutServlet.java:54)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:648)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:292)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)
    at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:240)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:212)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:106)
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:141)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79)
    at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:616)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:88)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:528)
    at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1099)
    at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:670)
    at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1520)
    at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1476)
    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)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...