Carregar uma Lista de duas tabelas na TableView

1 resposta
javafxjava
Paulosilv_123

Para povoar minha TableView eu uso esse método:
ublic void listarTableProduto() throws IOException{

ProdutoDAO produtoDAO = new ProdutoDAO();
    
        
    tableViewProdID.setCellValueFactory(new PropertyValueFactory<>("COD_ID"));
    tableViewProdNome.setCellValueFactory(new PropertyValueFactory<>("DESCRICAO"));
    tableViewProdBarra.setCellValueFactory(new PropertyValueFactory<>("CODBARRA"));
    tableViewProdForne.setCellValueFactory(new PropertyValueFactory<>("NOME"));
    tableViewProdQntEstoque.setCellValueFactory(new PropertyValueFactory<>("QNT_ESTOQUE"));
    tableViewProdPVenda.setCellValueFactory(new PropertyValueFactory<>("PVENDA"));
    
                 
    modelProdutos = produtoDAO.listarProduto();
    
    observableListProdutos = FXCollections.observableArrayList(modelProdutos);
    tableViewProdutos.setItems(observableListProdutos);
}

Meu Dão é esse:

public List listarProduto () throws IOException{

Connection conexao = ConexaoFirebird.getConexao();

List modelProdutos = new ArrayList();

List modelFornecedores = new ArrayList();

try{

String consultaProduto = SELECT CAD_PROD.COD_ID, CAD_PROD.ID_FORNECEDOR, CAD_PROD.DESCRICAO, CAD_PROD.CODBARRA, CAD_PROD.PVENDA, CAD_PROD.QNT_ESTOQUE, CAD_FORNECEDOR.NOME, CAD_FORNECEDOR.COD_ID FROM CAD_PROD, CAD_FORNECEDOR WHERE CAD_PROD.ID_FORNECEDOR = CAD_FORNECEDOR.COD_ID;

PreparedStatement pstmt = conexao.prepareStatement(consultaProduto);
ResultSet rs = pstmt.executeQuery();
        ModelFornecedor modelFornecedor;
        ModelProduto modelProduto;
        while(rs.next()){
            modelProduto = new ModelProduto();
            modelFornecedor = new ModelFornecedor();
        modelProduto.setCOD_ID(rs.getInt("CAD_PROD.COD_ID"));
        modelProduto.setID_FORNECEDOR(rs.getInt("CAD_PROD.ID_FORNECEDOR"));
        modelFornecedor.setNOME(rs.getString("CAD_FORNECEDOR.NOME"));
        modelProduto.setDESCRICAO(rs.getString("CAD_PROD.DESCRICAO"));
        modelProduto.setCODBARRA(rs.getString("CAD_PROD.CODBARRA"));
        modelProduto.setPVENDA(rs.getFloat("CAD_PROD.PVENDA"));
        modelProduto.setQNT_ESTOQUE(rs.getDouble("CAD_PROD.QNT_ESTOQUE"));
    
        modelProdutos.add(modelProduto);
        
        }pstmt.close();
    }catch(SQLException ex){
        System.out.println("Erro no Banco de Dados");
    }
            return modelProdutos;
}

mas creio que minha logica esta errada, alguém poderia me ajudar ?

1 Resposta

Jhonatas_Tomaz

Eu quando fiz uma aplicação que tinha que fazer consulta a duas bases se dados coloquei as variaveis dos dois bancos e fiz os getters e setters.Bom esta não é a melhor solução mais reaolveu meu problema

Criado 9 de julho de 2019
Ultima resposta 9 de jul. de 2019
Respostas 1
Participantes 2