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:
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"))); } } }
My question is, what parameter do I need to pass to control ?
– Marcelo T. Cortes
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.
– Rafael
The user will enter the name of the city and then appear all trips that have the same city.
– Marcelo T. Cortes
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) {
 return new ViagemDao(). getListaDestin(nameCity); }
– Rafael
Guy compiler says that the getListaViagensPorString(String) method in the control is not applicable to the arguments () ????
– Marcelo T. Cortes
Then he asks to add an argument in the List<Viagembean> voyages = control.getListaViagensPorString(); <<< but what argument would that be ????
– Marcelo T. Cortes
This argument is the name of the city you want to pass, in your case it will be the name that the user inform.
– Rafael
Let’s go continue this discussion in chat.
– Marcelo T. Cortes