Retorna hashCode em uma consulta de SQL

3 respostas
postgresqljava
Diego_Gomes_Dias

Estou com uma consulta em sql que está me retornando de uma forma errada.

Ele esta retornando assim?

[Cidade.Cidade@1d8b06a, Cidade.Cidade@251a5c, Cidade.Cidade@15ec3c1

e eu gostaria que retornasse assim

Acrelândia
Assis Brasil

Segue o código do metodo:

Classe Cidade

public class Cidade {

    private String nom_cidade;
    private String estado;

    public String getNom_cidade() {
        return nom_cidade;
    }
    public void setNom_cidade(String nom_cidade) {
        this.nom_cidade = nom_cidade;
    }
    public String toString(){
            return this.nom_cidade;
    }
}

Classe CidadeDao

public class CidEstDao extends GenericDao {

    public List<Cidade> getCidadeByEstado(String nom_cidade) throws Exception {
        String select = "SELECT nom_cidade FROM cidade WHERE estado = ?";
        Cidade cidade = null;
        PreparedStatement stmt = getConnection().prepareStatement(select);
        List<Cidade> cidades = new ArrayList<Cidade>(); 
        stmt.setString(1, nom_cidade);
        ResultSet rs = stmt.executeQuery();

        while (rs.next()) {
            cidade = new Cidade();
            cidade.setNom_cidade(rs.getString("nom_cidade"));
            cidades.add(cidade);
        }
        rs.close();
        stmt.close();
        return cidades;
    }
}

Classe CidadeEstController

public class CidEstController {

    public List<Cidade> buscaCidadePorEstado (String nom_cidade) throws Exception{
        CidEstDao dao = new CidEstDao();
        return  dao.getCidadeByEstado(nom_cidade);
    }
}

Classe principal

private List<Cidade> cidadePorEstado() throws Exception {
        CidEstController cc = new CidEstController();
        try {
            //List<Cidade> c = cc.buscaCidadePorEstado(uf);
             //List<Cidade> listaCidades = new ArrayList<>();
             //listaCidades = cc.buscaCidadePorEstado (uf);
           return cc.buscaCidadePorEstado (uf);
        } catch (SQLException e) {
            JOptionPane.showMessageDialog(this, "Ocorreu um erro, tente novamente!n" + e.getLocalizedMessage());
        } catch (NullPointerException e){
            JOptionPane.showMessageDialog(this, "Contato não localizdo ou não existe!n" + e.getLocalizedMessage());
        }
        return Collections.emptyList();
    }

3 Respostas

jonathan.sky

Tem que sobrescrever o método toString() para que ele retorne do jeito que você quer, exemplo:

public String toString()
{
    return "nome: "  + nome + "idade: ";
}

no caso a sobrescrita seria na sua classe cidade.

Diego_Gomes_Dias

mas eu fiz isso na classe cidade e continua dando a mesma mensagem, sera que eu escrevi errado???

Diego_Gomes_Dias

Eu escrevi um código assim,

O Metodo da classe principal

private List<Cidade> cidadePorEstado() throws Exception {
        CidEstController cc = new CidEstController();
        try {   return cc.buscaCidadePorEstado (uf);
        } catch (SQLException e) {
            JOptionPane.showMessageDialog(this,	"Ocorreu um erro, tente novamente!n" + e.getLocalizedMessage());
        } catch (NullPointerException e){
            JOptionPane.showMessageDialog(this, "Contato não localizdo ou não existe!n" + e.getLocalizedMessage());
        }
        return Collections.emptyList();
    }

Para retornar com um System.out.println()

try {
            for(Cidade cidade : cidadePorEstado()) System.out.println(cidade);
        } catch (Exception ex) {
            Logger.getLogger(CadCliente.class.getName()).log(Level.SEVERE, null, ex);
        }

Para imprimir ele funciona mas ao fazer praticamente o mesmo comando mas add um item na combo box, ele ta dando erro, falando que nao pode ser convertido em String, como faço para converter para string.

Criado 21 de maio de 2017
Ultima resposta 21 de mai. de 2017
Respostas 3
Participantes 2