How to Make a Control Class for JDBC Crud

Asked

Viewed 864 times

0

  • How do I make a control class for a list method of my crud?
  • The method of my dao class will return all the data set that have the same city.
  • But this mistake happens in my main class:

inserir a descrição da imagem aqui Method of class Dao

public List<ViagemBean> getListaDestino(String nomeCidade) {
      try {
          List<ViagemBean> viagens = new ArrayList<ViagemBean>();

          ConexaoMySQL.conectar();

          PreparedStatement stmt = ConexaoMySQL.getConexao()
                  .prepareStatement("select * from viagem where cidade = ? ");

             stmt.setString(1, nomeCidade);  

          ResultSet rs = stmt.executeQuery();

          while (rs.next()) {
              // criando o objeto viagem
              ViagemBean viagem = new ViagemBean();
              viagem.setIdViagem(rs.getInt("idViagem"));
              viagem.setTipo(rs.getString("tipoViagem"));

              Calendar dataInicio = Calendar.getInstance();
              dataInicio.setTime(rs.getDate("dataInicio"));
              viagem.setDataInicio(dataInicio);

              Calendar dataF = Calendar.getInstance();
              dataF.setTime(rs.getDate("dataEncerramento"));
              viagem.setDataEncerramento(dataF);

              viagem.setCidade(rs.getString("cidade"));
              viagem.setUf(rs.getString("uf"));
              viagem.setValorDiaria(rs.getDouble("valorDiaria"));
              viagem.setColaborador(rs.getString("colaborador"));
              viagem.setCliente(rs.getString("cliente"));

              // adicionando o objeto à lista
              viagens.add(viagem);
          }
          rs.close();
          stmt.close();
          return viagens;
      } catch (SQLException e) {
          throw new RuntimeException(e);
      }
  }

}

Control Class Method

package controle;

import java.util.List;

import modelo.ViagemBean;
import modelo.ViagemDao;

public class Controle {


   public static List<ViagemBean> getListaViagensPorString(String nomeCidade) { 
       return new ViagemDao().getListaDestino(nomeCidade); }




}

Method of class MAIN

private static void listarViagemDestino() {
      ViagemDao dao = new ViagemDao();

      Controle controle = new Controle();


      String nomeCidade = JOptionPane.showInputDialog("Digite o nome de uma cidade:");

      List<ViagemBean> viagens = controle.getListaViagensPorString(nomeCidade);

      for (ViagemBean contato : viagens) {



          JOptionPane.showMessageDialog(null, 
                  ("IdViagem: " + contato.getIdViagem()+ "\n")
                  +("tipo: " + contato.getTipo()+ "\n")
                  +"Data de inicio: " + contato.getDataInicio().getTime() + "\n"
                  +("Data de fim: " + contato.getDataEncerramento().getTime() + "\n"
                  +("cidade: " + contato.getCidade()+ "\n")
                  +("uf: " + contato.getUf()+ "\n")
                  +("valor da diaria: " + contato.getValorDiaria()+ "\n")
                  +("colaborador: " + contato.getColaborador()+ "\n")
                  +("cliente: " + contato.getCliente()+ "\n")));


      }



  }


}

1 answer

2


I saw the following mistake on your main you’re calling:

 Controle.getListaViagens("cidade", JOptionPane.showInputDialog("Digite o nome de uma cidade:"));

but your control method does not receive parameters, you are trying to send two Strings as parameters:

public List<ViagemBean> getListaViagens() {
  return new ViagemDao().getListaDestino();}

The error message already tells you what the problem is.

  • My question is, what parameter do I need to pass to control ?

  • By your code you do not need to send any parameter. You want to make a method that receives the name of the city and search for it. But the way you did to get that String is wrong.

  • The user will enter the name of the city and then appear all trips that have the same city.

  • Mude o método public List<ViagemBean> getListaDestino() {} para public List<ViagemBean> getListaDestino(String nomeCidade) {}, E crie outro método no seu Controlador public List<ViagemBean> getListaViagensPorString(String nomeCidade) {&#xA; return new ViagemDao(). getListaDestin(nameCity); }

  • Guy compiler says that the getListaViagensPorString(String) method in the control is not applicable to the arguments () ????

  • Then he asks to add an argument in the List<Viagembean> voyages = control.getListaViagensPorString(); <<< but what argument would that be ????

  • This argument is the name of the city you want to pass, in your case it will be the name that the user inform.

Show 3 more comments

Browser other questions tagged

You are not signed in. Login or sign up in order to post.