Fala, pessoal.
Tô com um projeto Agenda em Java e MySQL, na qual tenho um objeto Contatos, tendo os atributos
nome, telefone, email, endereço… etc
e a tabela no banco de dados, contendo os mesmos atributos.
Na tela agenda, eu gostaria que quando abri-la, retornar todos os registros da tabela do banco.
Como eu poderia fazer isso? Tentei fazer um ArrayList, mas não funcionou.
public ArrayList percorreSelect(Connection conexao) throws SQLException {
ArrayList lista = new ArrayList<>();
String sqlPercorre = “select id, nome, telefone, email, rua, numero, cidade, bairro, estado from contatos”;
try (PreparedStatement pst = conexao.prepareStatement(sqlPercorre);
ResultSet rs = pst.executeQuery()) {
while (rs.next()) {
lista.add(new Contatos(rs.getInt(1), rs.getString(2), rs.getString(3), rs.getString(4), rs.getString(5)
, rs.getString(6), rs.getString(7), rs.getString(8), rs.getString(9)));
}
} catch (Exception e) {}
}
===================================================
Eu tenho um método de consultar, porém, ela me retorna apenas um por um, queria que retornassem todos os registros da tabela numa tela só
Abaixo o método consultar que retorna um registro por vez.
public void consultar(Connection conexao) {
//Contatos contatos = new Contatos();
TelaAbrirAgenda telaabrir = new TelaAbrirAgenda(conexao);
String sql = “select * from contatos where nome = ?”;
try {
PreparedStatement pst = conexao.prepareStatement(sql);
pst.setString(1, txtBuscar.getText());
// a linha abaixo executa a query
ResultSet rs = pst.executeQuery();
//se existir o nome cadastrado
if (rs.next()) {
//contatos.toString();
System.out.println
("Nome: " + rs.getString(2) +
"\nTelefone: " + rs.getString(3) +
"\nEmail: " + rs.getString(4) +
"\nEndereço: " + rs.getString(5) + rs.getString(6) + rs.getString(7) + rs.getString(8)+
" \n-------------------------------------- ");
//telaabrir.lblResultado.setText(rs.getString(2));
//telaabrir.lblResultado2.setText(rs.getString(3));
//telaabrir.lblResultado3.setText(rs.getString(4));
Neste trecho, eu seto os label com as informações que vem do banco, gostaria de saber se tem algum jeito mais efetivo de fazer isso também rs
} else {
JOptionPane.showMessageDialog(null,"Não há este contato cadastrado.");
}
}
catch (Exception e ) {
telaabrir.lblResultado.setText(" Deu erro!"
+ "\n " + e);
}
}
Obrigado a todos.