Sistema de Reserva - DAO_RESERVA

Boa Tarde Pessoal, estou fazendo um sistema de reservas de salas, estou com dúvidas quanto a classe DAO RESERVAS, para fazer a reserva ele vai precisar de campos de outras tabelas tais como, funcionário, sala, atividade e aluno como faria pra estar pegando esses atributos para fazer a reserva?(herança?) e no comando insert como eu colocaria a comparação se a sala ja esta reservada naquele determinado horário?(seria no cod sql de inset?) Abaixo vou colocar o cód como está até agora

package DAO;

import java.sql.Connection;
import java.sql.Date;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import javax.swing.JOptionPane;

/**

  • Classe criada para realizar movimentações na tabela Reserva
  • (FAZER CRUD) em um “Vetor” no caso ArrayList de Reserva
  • @author José Luiz Bertoli Marinho
  • @since Classe criada dia 21 de Novembro de 2019
    */

public class ReservaDAO {

Connection con = null;
PreparedStatement pre = null;
Conexao conexao = new Conexao();

public void incluirReserva(Date ResDataHoraInicio, Date DataHoraFim){
    con = conexao.obterConexaoComBD();
    try{
         String sql = "insert into Reserva (ResDataHoraInicio,DataHoraFim) values (?,?)";
        pre = con.prepareStatement(sql);
        pre.setDate(1, ResDataHoraInicio);
        pre.setDate(2, DataHoraFim);
       
        pre.executeUpdate();
        
        System.out.println(pre);
        System.out.println("Incluído com sucesso !");
    }
    catch(Exception e){
        System.out.println("Erro ao incluir: ");
        System.out.println(e.getMessage());
    }
}

Cara, a função do DAO é, unica e exclusivamente, realizar operações que interajam com sua base de dados. Ou seja, ela não deve ter lógica.
Não vou entrar nos méritos da discussão sobre o pattern prever isso ou aquilo, mas, se você não tem uma camada service além do teu controller, coloque no controller mesmo.
Você precisa, na classe que vai chamar o DAO, prover tudo o que precisa para que o DAO possa trabalhar.
Se o método do DAO espera um elefante, você vai buscar o elefante na classe que chama esse método e passá-lo como argumento.

De novo: isso não deve ficar na classe DAO, deve estar na classe que chama esse dao. Você deve fazer um select pela data e hora que se deseja reservar, então, havendo registros nessa combinação, apresenta mensagem de erro.

1 curtida