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