Ошибка добавления значений в базу данных

У меня есть таблица user_request

CREATE TABLE user_request (
                              id int auto_increment,
                              user_email varchar(45) not null,
                              number_of_beds varchar(10),
                              class varchar(45),
                              arrival_date date,
                              departure_date date,
                              lowerPriceLimit float,
                              upperPriceLimit float,
                              primary key (id),
                              foreign key (user_email)
                                  references accounts(email)
                                  on delete cascade
);

Есть DAO для этой таблицы, в которой я создал функцию для добавления данных в таблицу


import ProjectHotel.DB.DBManager;

import java.sql.Connection;
import java.sql.Date;
import java.sql.PreparedStatement;
import java.sql.SQLException;

public class UserRequestDAO {

    public static DBManager dbManager = DBManager.getInstance();

    public static void insertUserRequest(String userEmail, String numberOfBeds, String classOfRoom, Date arrivalDate, Date departureDate, float lowerPriceLimit, float upperPriceLimit) {
        PreparedStatement ps = null;
        try (Connection con = dbManager.getConnection()) {
            String sql = "INSERT INTO user_request (user_email,number_of_beds,class, arrival_date,departure_date,lowerPriceLimit, upperPriceLimit) Values (?,?,?,?,?,?,?,?);";
            ps = con.prepareStatement(sql);
            ps.setString(1, userEmail);
            ps.setString(2, numberOfBeds);
            ps.setString(3, classOfRoom);
            ps.setDate(4, arrivalDate);
            ps.setDate(5, departureDate);
            ps.setFloat(6, lowerPriceLimit);
            ps.setFloat(7, upperPriceLimit);
            ps.executeUpdate();
        } catch (SQLException e) {
            e.getMessage();
        } finally {
            try {
                if (ps != null) {
                    ps.close();
                }
            } catch (SQLException throwables) {
                throwables.printStackTrace();
            }
        }
    }
}

И есть класс, который получает данные с веб страницы и вызывает функцию insertUserRequest


import ProjectHotel.DB.dao.UserRequestDAO;
import jakarta.servlet.ServletException;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;

import java.io.IOException;
import java.sql.Date;
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;

public class SendRequestCommand extends Command {
    @Override
    public String execute(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException {

        String email = (String) request.getSession(false).getAttribute("email");

        String[] bedsArray = request.getParameterValues("beds");
        String beds = String.join(",", bedsArray);

        String[] clas = request.getParameterValues("class");
        String classes = String.join(", ", clas);
        

        String arrivalDateStr = request.getParameter("dateIn");
        String departureDateStr = request.getParameter("dateOut");
        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");

        LocalDate arrivalDateLD = LocalDate.parse(arrivalDateStr, formatter);
        LocalDate departureDateLD = LocalDate.parse(departureDateStr, formatter);

        Date arrivalDate = Date.valueOf(arrivalDateLD);
        Date departureDate = Date.valueOf(departureDateLD);
       
        float lowerPriceLimit = Float.parseFloat(request.getParameter("lowerPriceLimit"));
        float upperPriceLimit = Float.parseFloat(request.getParameter("upperPriceLimit"));

UserRequestDAO.insertUserRequest(email,beds,classes,arrivalDate,departureDate,lowerPriceLimit,upperPriceLimit);
        return null;
    }
}

Я отправляю данные, но запись в таблицу не добавляется. Проблема именно в sql запросе(возможно в датах), так как другие методы из других DAO работают.


Ответы (0 шт):