pessoal tenho esse codigo para popular uma jtable... porem não tem padrão nenhum.... eu keria jogar esse metodo no meu dao e chamar ele pelo view para popular.
alguem pode me ajudar?
private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {
List <Cliente> list_cliente = new ArrayList<Cliente>();
try{
Cliente cliente = new Cliente();
Connection conn = ConectionBD.getConnection();
String sql = null;
sql = "select * from cliente";
PreparedStatement pst = conn.prepareStatement(sql);
ResultSet rs = pst.executeQuery();
DefaultTableModel modelo = new DefaultTableModel();
modelo.addColumn(new String[]{"rua", "numero"});
while (rs.next()) {
modelo.addRow(new Object[]{rs.getString("rua"), rs.getInt("numero")});
modelo.addColumn(new Object[]{rs.getInt("telefone")});
}
jTable1.setModel(modelo);
}catch(Exception e){}
se eu fosse colocar esse código no dao e fosse chamar pela view eu iria fazer assim + ou -
Não entendi sua duvida. Fiquei com a impressão que você estava querendo implementar um factory Method.
S
souzajhonatan
akele codigo esta na minha view… ou seja sem padrão nehum… eu keria colocar akele codigo na minha camada de persistencia, porem não estou conseguindo chamar ele pela view dpw q colocar no DAO.
luciano2
Cara você coloca o código no seu Dao em algum método.
Se você te um facade entre o dao e a view você vai apenas instanciar o facade dentro do método actionPerformed e chamar o método.
Lembrando que você está usando uma interface IFachada para receber uma instância de Fachada, Logo sua interface tem que ter a assinatura do método que você vai chamar na view.
S
souzajhonatan
eu estava tentando fazer algo aki mais não rolou....
so que na table aparece uma coluna em branco com o titulo Ljava.lang.Obejcts.@.......
[img]C:\Users\jhonatan\Desktop\espaco em branco.jpg[/img]
luciano2
Não entendo o porque de
Da uma olhada na especificação de DefaultTableModel e você vai ver que addColumn não recebe array de objetos.
S
souzajhonatan
entendi o q vc falo... eu coloquei os nomes das colunas qdo instanciei defaulttablemodel
porem msm com o metodo de consulta de retornar todos.. ele apenas me retornou o ultimo dado da tabela...
veja meu metodo de consulta.
public List Clientes(DomainObject domainObject) throws SQLException {
List <Cliente> list_cliente = new ArrayList<Cliente>();
try{
Cliente cliente = (Cliente)domainObject;
Connection conn = ConectionBD.getConnection();
String sql = null;
sql = "select * from cliente order by idcliente";
PreparedStatement pst = conn.prepareStatement(sql);
ResultSet rs = pst.executeQuery();
while (rs.next()) {
Endereco endereco = new Endereco();
endereco.setRua(rs.getString("rua"));
endereco.setNumero(rs.getInt("numero"));
endereco.setCidade(rs.getString("cidade"));
endereco.setBairro(rs.getString("bairro"));
cliente.setEndereco(endereco);
cliente.setCPF(rs.getInt("cpf"));
cliente.setNome(rs.getString("nome"));
cliente.setTelefone(rs.getInt("telefone"));
cliente.setID(rs.getInt("idcliente"));
list_cliente.add(cliente);
}}catch(Exception e){
e.printStackTrace();
JOptionPane.showMessageDialog(null, e.getMessage());
}
return list_cliente;
}
luciano2
Cara sua consulta está retornando apenas o ultimo? ou o ultimo repetido várias vezes?
Pelo que eu estou vendo você está utilizando o mesmo objeto Cliente dentro do While para adicionar na Lista.
Para cada registro dentro do seu resultSet você tem que instanciar o cliente de novo, senão oque você vai estar fazendo é instanciar cliente, alterar os valores e colocar denovo na lista.