Gente sou iniciante em java e estou com o seguinte problema, nao estou conseguindo passar a list do resultset(SE ESTIVER CORRETA)´para o tablemodel,
a parte de atribui o tablemodel para JTable eu consegui, mas nao preenche com os dados do banco, pois ainda nao consegui passar…
segue o codigo.
package Classes;
import java.sql.*;
import java.util.*;
import javax.swing.JOptionPane;
/**
*
* @author Bruno
*/
public class ConsultaComputadoresDAO {
private Connection conn;
List<ComputadoresBean> comps = new ArrayList<ComputadoresBean>();
public ConsultaComputadoresDAO(List<ComputadoresBean> comps) throws SQLException{
this.conn = ConnectionFactory.getConnection();
try {
String sql = "SELECT * FROM registropc";
PreparedStatement pstmt = this.conn.prepareStatement(sql);
ResultSet rs = pstmt.executeQuery();
System.out.println("Aberta");
while (rs.next()) {
ComputadoresBean c= new ComputadoresBean();
c.setId(rs.getInt("idRegistroComp"));
c.setData(rs.getString("dataCadastro"));//aqui o banco me passa uma data tipo(DATE), como passar para date do java ?
c.setTipo(rs.getString("tipo"));
c.setNome(rs.getString("nome"));
c.setSerial(rs.getString("serial"));
comps.add(c);
}
}catch (SQLException ex) {
ex.printStackTrace();
JOptionPane.showMessageDialog(null,"Erro ao procurar dados no banco");
}
finally{
try{
conn.close();
System.out.println("conexão fechada");
}catch(SQLException ConClose){
System.out.println("Houve erro no fechamento da conexão");
ConClose.printStackTrace(System.err);
}
}
}
}
TABLEMODEL
public class TableModelComputadores extends AbstractTableModel {
private List<ComputadoresBean> comp;
public TableModelComputadores() {
// no construtor, instanciamos o List
comp = new ArrayList<ComputadoresBean>();
}
/**
* Criamos um construtor de conveniencia para ja popular a lista.
*
* @param lista
* a lista de clientes a ser adicionada.
*
public TableModelComputadores(List<ComputadoresBean> lista) {
this();
comp.addAll(lista);
}
@Override
public Class<?> getColumnClass(int coluna) {
// todas as colunas representam uma String
return String.class;
}
@Override
public int getColumnCount() {
return 5;
}
@Override
public String getColumnName(int coluna) {
// vamos retornar o nome de cada coluna
switch (coluna) {
case 0:
return "ID";
case 1:
return "Data de CADASTRO";
case 2:
return "Equipamento";
case 3:
return "Nome";
case 4:
return "Serial";
default:
return "";
}
}
@Override
public int getRowCount() {
return comp.size();
}
@Override
public Object getValueAt(int linha, int coluna) {
ComputadoresBean cb = comp.get(linha);
switch (coluna) {
case 0:
return cb.getId(); // retornamos o ID
case 1:
return cb.getData(); // retornamos a Data
case 2:
return cb.getTipo(); // tipo
case 3:
return cb.getNome(); // nome
case 4:
return cb.getSerial(); // serial
default:
return null; // isso nunca deve ocorrer, pois temos so 5 colunas
}
}
@Override
public boolean isCellEditable(int rowIndex, int columnIndex) {
return true;
}
@Override
public void setValueAt(Object valor, int linha, int coluna) {
ComputadoresBean cb = comp.get(linha);
switch (coluna) {
case 0:
cb.setId(Integer.parseInt(valor.toString())); // mudamos o ID
break;
case 1:
cb.setData(valor.toString()); // mudar
break;
case 2:
cb.setTipo(valor.toString()); //mudar ....
break;
case 3:
cb.setNome(valor.toString()); // mudar....
break;
case 4:
cb.setSerial(valor.toString()); // mudar....
break;
}
// � importante notificar os listeners a cada alteracao
fireTableDataChanged();
}
public void adiciona(ComputadoresBean cb) {
comp.add(cb);
fireTableRowsInserted(comp.size() - 1, comp.size() - 1);
}
public void remove(int indice) {
comp.remove(indice);
fireTableRowsDeleted(indice, indice);
}
public int getIndice(ComputadoresBean cb) {
return comp.indexOf(cb);
}
public void adicionaLista(List<ComputadoresBean> lista) {
int i = comp.size();
comp.addAll(lista);
fireTableRowsInserted(i, i + lista.size());
}
public void limpaLista() {
int i = comp.size();
comp.clear();
fireTableRowsDeleted(0, i - 1);
}
}
EVENTO BOTAO consultar
modelo = new TableModelComputadores();
JTableComputadores.setModel(modelo);
Alguem poderia me ajudar a solucionar essa duvida,