Мой сервлет работает без проблем, но данные не вставляются в базу данных. Почему? - PullRequest
0 голосов
/ 27 апреля 2020
Servlet

package com.reservation;

import java.io.IOException;
import java.sql.Date;

import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;


@WebServlet("/reservationservlet")
public class reservationservlet extends HttpServlet {
    private static final long serialVersionUID = 1L;


    public reservationservlet() {
        super();

    }


    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

        String clientid = request.getParameter("clientid");
        String reservationid = request.getParameter("resid");
        String reservationdate = request.getParameter("resdate");
        String paymethod = request.getParameter("paymentmethod");
        String ecat = request.getParameter("category");
        String packg = request.getParameter("package");

        boolean isTrue;

        isTrue = reservationDBUtil.insertreservation(clientid, reservationid, reservationdate, paymethod, ecat, packg);

        if(isTrue == true) {
            RequestDispatcher dis = request.getRequestDispatcher("services2.jsp");
            dis.forward(request, response);
        }
        else {
            RequestDispatcher dis2 = request.getRequestDispatcher("reservation.jsp");
            dis2.forward(request, response);
        }
    }

}

DBUtil

package com.reservation;

import java.sql.Connection;
import java.sql.DriverManager;
import java.util.List;

import com.mysql.jdbc.Statement;

public class reservationDBUtil {

    public static boolean insertreservation(String clientid,String reservationid,String reservationdate,String paymethod,String ecat,String packg) {

        boolean isSuccess = false;

        //database connection
        String url = "jdbc:mysql://localhost:3306/reservations";
        String user = "root";
        String pass = "6334";

        try {

            Class.forName("com.mysql.jdbc.Driver");

            Connection con = DriverManager.getConnection(url, user, pass);
            Statement stmt = (Statement) con.createStatement();
            String sql = "insert into reservation values ('"+clientid+"','"+reservationid+"','"+reservationdate+"','"+paymethod+"','"+packg+"')";
            int res = stmt.executeUpdate(sql);

               if(res > 0) {
                   isSuccess = true;
               } else {
                   isSuccess = false;
               }


        }

        catch (Exception e) {
            e.printStackTrace();
        }


        return isSuccess;

    }


}
Mon Apr 27 15:30:24 IST 2020 WARN: Establishing SSL connection without server's identity verification is not recommended. According to MySQL 5.5.45+, 5.6.26+ and 5.7.6+ requirements SSL connection must be established by default if explicit option isn't set. For compliance with existing applications not using SSL the verifyServerCertificate property is set to 'false'. You need either to explicitly disable SSL by setting useSSL=false, or set useSSL=true and provide truststore for server certificate verification.
com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Table 'reservations.reservation' doesn't exist
    at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
    at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    at java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:500)
    at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:481)
    at com.mysql.jdbc.Util.handleNewInstance(Util.java:425)
    at com.mysql.jdbc.Util.getInstance(Util.java:408)
    at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:944)
    at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3933)
    at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3869)
    at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:2524)
    at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2675)
    at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2465)
    at com.mysql.jdbc.StatementImpl.executeUpdateInternal(StatementImpl.java:1536)
    at com.mysql.jdbc.StatementImpl.executeLargeUpdate(StatementImpl.java:2585)
    at com.mysql.jdbc.StatementImpl.executeUpdate(StatementImpl.java:1464)
    at com.reservation.reservationDBUtil.insertreservation(reservationDBUtil.java:27)
    at com.reservation.reservationservlet.doPost(reservationservlet.java:36)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:660)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
    at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:202)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:541)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:139)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)
    at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:690)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343)
    at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:373)
    at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)
    at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:868)
    at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1590)
    at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
    at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1130)
    at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:630)
    at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
    at java.base/java.lang.Thread.run(Thread.java:832)

1 Ответ

0 голосов
/ 27 апреля 2020

Я думаю, что ваша проблема в том, что у вас нет таблицы reservation в вашей базе данных. Попробуйте создать его.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...