1. java
  2. android
  3. c#
  4. .net
  5. javascript
  6. php
  7. jquery
  8. html
  9. sql

Sistema usando JSP, Servlets e JDBC

Gostaria de uma ajuda com um sistema que estou desenvolvendo como trabalho de faculdade. O sistema consiste em telas para fazer check in dos hospedes, check out, cadastrar hóspedes, e,t,c. Eu consegui fazer uma tela que tem essas funcionalidades mas ficou faltando coisas, eu pela falta de conhecimento não consigo pensar mais no que fazer, meu cérebro bugou... me deem uma ajuda, vou postar o que já fiz...

Criei um DAO para conexao com o BD, só existe uma tabela.

package br.com.hospede.dao;

import java.sql.Connection;
import java.sql.DriverManager;

/**
 * Classe responsável pela Conexão com o Banco de dados. É utilizada por outras
 * classes de persistência de dados.
 * 
 */
public class DAO {
    public Connection getConexao() {
        Connection conexao = null;
        String usuario = "root";
        String senha = "1q2w3e";
        String nomeBancoDados = "pousada";

        try {
            Class.forName("com.mysql.jdbc.Driver");
            conexao = DriverManager.getConnection("jdbc:mysql://localhost:3306/" + nomeBancoDados,
                     usuario, senha);
        } catch (Exception e) {
            e.printStackTrace();
        }
        return conexao;
    }
}

Hospede.DAO

package br.com.hospede.dao;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;

import br.com.hospede.entidade.Hospede;

/**
 * 
 * Classe de Persistência de dados dos objetos de Hospede
 é "filha" da Classe DAO. 
 *
 */

public class HospedeDAO extends DAO {

    public void alterar(Hospede hospede) {
        try {
            Connection conexao = getConexao();

            PreparedStatement pstmt = conexao
                    .prepareStatement("Update tbhospede SET quarto = ?, nome = ?, cpf = ?, produtos = ?, telefone = ?, email = ?, dataentrada = ? datasaida = ?,"
                            + " WHERE codigo = ? ");
            pstmt.setString(1, hospede.getQuarto());
                        pstmt.setString(2, hospede.getNome());
            pstmt.setString(3, hospede.getCpf());
            pstmt.setString(4, hospede.getProdutos());
                        pstmt.setString(5, hospede.getTelefone());
                        pstmt.setString(6, hospede.getEmail());
            pstmt.setDate(7, new java.sql.Date(hospede.getDataEntrada().getTime()));
                        pstmt.setDate(8, new java.sql.Date(hospede.getDataSaida().getTime()));
            pstmt.setLong(9, hospede.getCodigo());
            pstmt.execute();
            pstmt.close();
            conexao.close();

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

    public void excluir(Hospede hospede) {
        try {
            Connection conexao = getConexao();
            PreparedStatement pstm = conexao
                    .prepareStatement("Delete from    tbhospede where codigo = ? ");
            pstm.setLong(1, hospede.getCodigo());
            pstm.execute();
            pstm.close();
            conexao.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    public boolean existe(Hospede hospede) {
        boolean achou = false;
        try {
            Connection conexao = getConexao();
            PreparedStatement pstm = conexao
                    .prepareStatement("Select * from tbhospede where codigo =    ?");
            pstm.setLong(1, hospede.getCodigo());
            ResultSet rs = pstm.executeQuery();
            if (rs.next()) {
                achou = true;
            }
            pstm.close();
            conexao.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
        return achou;
    }

    public void inserir(Hospede hospede) {
        try {
            Connection conexao = getConexao();
            PreparedStatement pstm = conexao
                    .prepareStatement("Insert into    tbhospede (codigo, quarto, nome, cpf, produtos, telefone, email, dataentrada, datasaida) values    (?,?,?,?,?,?,?,?,?)");
            pstm.setLong(1, hospede.getCodigo());
            pstm.setString(2, hospede.getQuarto());
                        pstm.setString(3, hospede.getNome());
                        pstm.setString(4, hospede.getCpf());
                        pstm.setString(5, hospede.getProdutos());
            pstm.setString(6, hospede.getTelefone());
            pstm.setString(7, hospede.getEmail());
            pstm.setDate(8, new java.sql.Date(hospede.getDataEntrada()
                    .getTime()));
                        pstm.setDate(9, new java.sql.Date(hospede.getDataSaida()
                    .getTime()));
            pstm.execute();
            pstm.close();
            conexao.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    public List<Hospede> listar() {
        List<Hospede> lista = new ArrayList<>();
        try {
            Connection conexao = getConexao();
            Statement stm = conexao.createStatement();
            ResultSet rs = stm.executeQuery("Select * from tbhospede");
            while (rs.next()) {
                Hospede hospede = new Hospede();
                hospede.setCodigo(rs.getLong("codigo"));
                                hospede.setQuarto(rs.getString("quarto"));
                                hospede.setNome(rs.getString("nome"));
                                hospede.setCpf(rs.getString("cpf"));
                                hospede.setProdutos(rs.getString("produtos"));
                hospede.setTelefone(rs.getString("telefone"));
                hospede.setEmail(rs.getString("email"));
                hospede.setDataEntrada(new java.util.Date(rs.getDate("dataentrada").getTime()));
                                hospede.setDataSaida(new java.util.Date(rs.getDate("datasaida").getTime()));
                lista.add(hospede);
            }
            stm.close();
            conexao.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
        return lista;
    }

    public Hospede consultar(Hospede hospede) {
        try {
            Connection conexao = getConexao();
            PreparedStatement pstm = conexao
                    .prepareStatement("Select * from tbhospede where codigo =    ?");
            pstm.setLong(1, hospede.getCodigo());
            ResultSet rs = pstm.executeQuery();
            if (rs.next()) {
                hospede.setCodigo(rs.getLong("codigo"));
                hospede.setQuarto(rs.getString("quarto"));
                                hospede.setNome(rs.getString("nome"));
                                hospede.setCpf(rs.getString("cpf"));
                                hospede.setProdutos(rs.getString("produtos"));
                hospede.setTelefone(rs.getString("telefone"));
                hospede.setEmail(rs.getString("email"));
                hospede.setDataEntrada(new java.util.Date(rs.getDate("dataentrada").getTime()));
                                hospede.setDataSaida(new java.util.Date(rs.getDate("datasaida").getTime()));
            }
            pstm.close();
            conexao.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
        return hospede;
    }
}

Classe Hospede

package br.com.hospede.entidade;

import java.io.Serializable;
import java.util.Date;

/**
 * 
 * Classe de entidade que possui os atributos do aluno 
 *
 */
public class Hospede implements Serializable {
    private static final long serialVersionUID = -309513637403441918L;

    private Long codigo;

    private String quarto;

    private String nome;

    private String cpf;

        private String produtos;

    private String telefone;

    private String email;

    private Date dataEntrada;

        private Date dataSaida;

    public Hospede() {}

    public Hospede(Long codigo) {
        super();
        this.codigo = codigo;
    }

    public Hospede(Long codigo, String nome) {
        super();
        this.codigo = codigo;
        this.nome = nome;
    }

    public Date getDataEntrada() {
        return dataEntrada;
    }
        public Date getDataSaida() {
        return dataSaida;
    }

    public String getEmail() {
        return email;
    }

    public Long getCodigo() {
        return codigo;
    }
        public String getQuarto() {
        return quarto;
    }

    public String getNome() {
        return nome;
    }
        public String getCpf() {
        return cpf;
    }
        public String getProdutos() {
        return produtos;

    }
        public String getTelefone() {
        return telefone;

    }

    public void setDataEntrada(Date dataEntrada) {
        this.dataEntrada = dataEntrada;
    }

        public void setDataSaida(Date dataSaida) {
        this.dataSaida = dataSaida;
    }

    public void setEmail(String email) {
        this.email = email;
    }

    public void setCodigo(Long codigo) {
        this.codigo = codigo;
    }
        public void setQuarto(String quarto) {
        this.quarto = quarto;
    }
    public void setNome(String nome) {
        this.nome = nome;
    }
        public void setCpf(String cpf) {
        this.cpf = cpf;
    }
        public void setProdutos(String produtos) {
        this.produtos = produtos;
    }
    public void setTelefone(String telefone) {
        this.telefone = telefone;
    }

    @Override
    public String toString() {
        return "Hospede [codigo=" + codigo + ", quarto=" + quarto
                + ", nome=" + nome + ", cpf=" + cpf
                                + ", produtos=" + produtos + ", telefone=" + telefone
                                + ", email=" + email + ", dataEntrada=" + dataEntrada
                                + ", dataSaida=" + dataSaida + "]";
    }
}

O servlet

package br.com.hospede.servlet;

import java.io.IOException;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

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;

import br.com.hospede.dao.HospedeDAO;
import br.com.hospede.entidade.Hospede;

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

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

    protected void doPost(HttpServletRequest request,
            HttpServletResponse response) throws ServletException, IOException {
        String acao = request.getParameter("acao");
        String destino = "sucesso.jsp";
        String mensagem = "";
        List<Hospede> lista = new ArrayList<>();


        Hospede hospede = new Hospede();
        HospedeDAO dao = new HospedeDAO();

        try {

            //Se a ação for DIFERENTE de Listar são lidos os dados da tela
            if (!acao.equalsIgnoreCase("Listar")) {
                hospede.setCodigo(Long.parseLong(request.getParameter("codigo")));
                                hospede.setQuarto(request.getParameter("quarto"));
                hospede.setNome(request.getParameter("nome"));
                                hospede.setCpf(request.getParameter("cpf"));
                                hospede.setProdutos(request.getParameter("produtos"));
                hospede.setTelefone(request.getParameter("telefone"));
                hospede.setEmail(request.getParameter("email"));

                //Faz a leitura da data de cadastro. Caso ocorra um erro de formatação
                // o sistema utilizará a data atual
                try {
                    DateFormat df = new SimpleDateFormat("dd/MM/yyyy");                    
                    hospede.setDataEntrada(df.parse(request.getParameter("dataEntrada")));
                                        hospede.setDataSaida(df.parse(request.getParameter("dataSaida")));
                } catch (Exception e) {
                    hospede.setDataEntrada(new Date());
                                        hospede.setDataSaida(new Date());
                }

            }

            if (acao.equalsIgnoreCase("Incluir")) {
                // Verifica se o código informado já existe no Banco de Dados
                // Se existir enviar uma mensagem senão faz a inclusão
                if (dao.existe(hospede)) {
                    mensagem = "Código informado já existe!";
                } else {
                    dao.inserir(hospede);
                }
            } else if (acao.equalsIgnoreCase("Alterar")) {
                dao.alterar(hospede);
            } else if (acao.equalsIgnoreCase("Excluir")) {
                dao.excluir(hospede);
            } else if (acao.equalsIgnoreCase("Consultar")) {
                request.setAttribute("hospede", hospede);
                hospede = dao.consultar(hospede);
                destino = "hospede.jsp";
            }
        } catch (Exception e) {
            mensagem += e.getMessage();
            destino = "erro.jsp";
            e.printStackTrace();
        }

        // Se a mensagem estiver vazia significa que houve sucesso!
        // Senão será exibida a tela de erro do sistema.
        if (mensagem.length() == 0) {
            mensagem = "Hóspede Cadastrado com sucesso!";
        } else {
            destino = "erro.jsp";
        }

        // Lista todos os registros existente no Banco de Dados
        lista = dao.listar();
        request.setAttribute("listaHospede", lista);
        request.setAttribute("mensagem", mensagem);


        //O sistema é direcionado para a página 
        //sucesso.jsp Se tudo ocorreu bem
        //erro.jsp se houver algum problema.
        RequestDispatcher rd = request.getRequestDispatcher(destino);
        rd.forward(request, response);
    }
}

Depois têm os arquivos JSP responsáveis pelas telas gerenciar os hóspedes e listar.. não vou postar aqui pq se nao o post vai ficar bem mais extenso.... vou postar o que o professor pediu no trabalho.

Crie uma aplicação Web usando as tecnologias JDBC, Servlets e JSP, para a pousada.

- Defina uma classe Apartamento, com os atributos: 
Número, 
Tipo (Comum, Padrão, Luxo), 
Valor Diária, 
Ocupado.

- Defina uma classe Reserva que tem os seguintes atributos:
    - Número da Reserva,
    - Apartamento Reservado,
    - Hóspede,
           - Lista de Produtos Consumidos.
    - data de entrada;
    - data de Saída;
    - Status (Ativa, Finalizada)

- Defina uma classe Hóspede, com os seguintes atributos:
    - Nome Completo
    - Phone fixo.
- Celular.
           - Endereço (Rua, número, Complemento, Cidade, Estado, Cep)
    - Cpf,
           - Email,       
- Defina uma classe Produtos, com os seguintes atributos:
    - Nome do Produto;
    - Valor do Produto;

Os apartamentos Comum terão diárias no valor de 200,00 reais
Os apartamentos Padrão terão diárias no valor de 250,00 reais
Os apartamentos Luxo terão diárias no valor de 300,00 reais

O sistema deve prover as seguintes funcionalidades:

1.    Cadastrar apartamentos na pousada;
o    No momento do cadastro, será escolhido o tipo do apartamento.
2.    Ocupar apartamento (Fazer Checkin);
o    Nesse momento deve-se criar uma reserva em apartamento desocupado;
o    Cadastrar um hóspede;
o    Informar o período de ocupação (data de entrada e saída);
3.    Desocupar apartamento (Fechar estadia, Checkout),
o    Nesse momento deve-se poder incluir produtos que o cliente tenha consumido.
o    Atualizar a data de saída.

O que posso fazer para atender os requisitos que ele pede? não sei oq fazer me ajudem

  1. Você vai ver essas setas em qualquer página de pergunta. Com elas, você pode dizer se uma pergunta ou uma resposta foram relevantes ou não.
  2. Edite sua pergunta ou resposta caso queira alterar ou adicionar detalhes.
  3. Caso haja alguma dúvida sobre a pergunta, adicione um comentário. O espaço de respostas deve ser utilizado apenas para responder a pergunta.
  4. Se o autor da pergunta marcar uma resposta como solucionada, esta marca aparecerá.
  5. Clique aqui para mais detalhes sobre o funcionamento do GUJ!

0 resposta

Não é a resposta que estava procurando? Procure outras perguntas com as tags java jsp servlets ou faça a sua própria pergunta.