Eu estou tentando criar uma aplicação, que faz consulte no banco de dados e ao cricar no botão, a consulta apareça em um jTable.
Eu peguei um exemplo de um table model, mas eu não consigo fazer aparecer a consulta no meu jTable ao apertar o botão.
Oque eu devo colocar no jButton1ActionPerformed para mostrar a tabela?
Alguem poderia me ajudar a resolver esse problema?
public class Pessoa {
private String id;
private String nome;
public String getId() {
return id;
}
public void setId(String i) {
this.i = id;
}
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
}
public class PessoaDAO {
public List<Pessoa> getLista(String Id) throws SQLException{
Connection conexao = ConectaBanco.getConexao();
String sql = "select * from pessoa where id=?";
PreparedStatement pstmt = conexao.prepareStatement(sql);;
pstmt.setString(1, Id);
ResultSet rs = pstmt.executeQuery();
List<Pessoa> ListaPessoa = new ArrayList<Pessoa>();
if(rs.next()){
Pessoa p = new Pessoa();
p.setId(rs.getString("id"));
p.setNome(rs.getString("nome"));
}
rs.close();
pstmt.close();
return ListaPessoa;
}
}
public class PessoaTableModel extends AbstractTableModel{
private static final int COL_Id = 0;
private static final int COL_Nome = 1;
private List<Pessoa> valores;
//Esse é um construtor, que recebe a nossa lista de livros
public PessoaTableModel(List<Pessoa> valores) {
this.valores = new ArrayList<Pessoa>(valores);
}
@Override
public int getRowCount() {
//Quantas linhas tem sua tabela? Uma para cada item da lista.
return valores.size();
}
@Override
public int getColumnCount() {
//Quantas colunas tem a tabela? Nesse exemplo, só 2.
return 2;
}
@Override
public String getColumnName(int column) {
//Qual é o nome das nossas colunas?
if (column == COL_Id) {
return "Id";
}
if (column == COL_Nome) {
return "Nome";
}
return ""; //Nunca deve ocorrer
}
@Override
public Object getValueAt(int row, int column) {
//Precisamos retornar o valor da coluna column e da linha row.
Pessoa pessoa = valores.get(row);
if (column == COL_Id) {
return pessoa.getId();
}
else if (column == COL_Nome) {
return pessoa.getNome();
}
return ""; //Nunca deve ocorrer
}
@Override
public void setValueAt(Object aValue, int rowIndex, int columnIndex) {
Pessoa pessoa = valores.get(rowIndex);
//Vamos alterar o valor da coluna columnIndex na linha rowIndex com o valor aValue passado no parâmetro.
//Note que vc poderia alterar 2 campos ao invés de um só.
if (columnIndex== COL_Id) {
pessoa.setId(aValue.toString());
}
else if (columnIndex== COL_Nome) {
pessoa.setNome(aValue.toString());
}
}
@Override
public Class<?> getColumnClass(int columnIndex) {
//Qual a classe das nossas colunas? Como estamos exibindo texto, é string.
return String.class;
}
@Override
public boolean isCellEditable(int rowIndex, int columnIndex) {
//Indicamos se a célula da rowIndex e da columnIndex é editável. Nossa tabela toda é.
return true;
}
public Pessoa get(int row) {
return valores.get(row);
}