1. java
  2. android
  3. c#
  4. .net
  5. javascript
  6. php
  7. jquery
  8. html
  9. sql

Como obter data do MySql, em uma tableview com JavaFX

Fala galera a minha dúvida é a seguinte... Estou querendo preencher uma coluna da tableview com valores no formato de data, porém esses valores estão no banco de dados.

public class Venda{
    private IntegerProperty cdVenda;
    private SimpleObjectProperty<LocalDate> data;
    private DoubleProperty valor;
    private BooleanProperty pago;
    private List<ItemDeVenda> itensDeVenda;
    private SimpleObjectProperty<Pessoa> pessoa;

    public int getCdVenda() {
        return cdVenda.get();
    }

    public double getValor() {
        return valor.get();
    }

    public LocalDate getData() {
        return data.get();
    }

    public boolean getPago() {
        return pago.get();
    }

    public Pessoa getPessoa() {
        return pessoa.get();
    }

    public List<ItemDeVenda> getItensDeVenda() {
        return itensDeVenda;
    }

    public void setCdVenda(int cdVenda) {
        this.cdVenda.set(cdVenda);
    }

    public void setData(LocalDate data) {
        this.data.set(data);
    }

    public void setItensDeVenda(List<ItemDeVenda> itensDeVenda) {
        this.itensDeVenda = itensDeVenda;
    }

    public void setPago(boolean pago) {
        this.pago.set(pago);
    }

    public void setPessoa(Pessoa pessoa) {
        this.pessoa.set(pessoa);
    }

    public void setValor(double valor) {
        this.valor.set(valor);
    }

    public ObjectProperty<LocalDate> getDataProperty() {
        return data;
    }

    public ObjectProperty<Pessoa> getPessoaProperty() {
        return pessoa;
    }

    public Venda(){
    }

    public Venda(LocalDate data, double valor, boolean pago, Pessoa pessoa){
        //this.cdVenda = cdVenda;
        this.data = new SimpleObjectProperty<LocalDate>(data);
        this.valor = new SimpleDoubleProperty(valor);
        this.pago = new SimpleBooleanProperty(pago);
        this.pessoa = new SimpleObjectProperty<Pessoa>(pessoa);
    }
}

// vendaDAO

public class VendaDAO {
    private static final String URL = "jdbc:mysql://localhost:3306/pessoas";
    private static final String USER = "root";
    private static final String PASSWORD = "";

    private Connection connection;
    private PreparedStatement sqlInserirVenda;
    private PreparedStatement sqlAlterarVenda;
    private PreparedStatement sqlDeletarVenda;
    private PreparedStatement sqlListarVenda;
    private PreparedStatement sqlBuscarVenda;
    private PreparedStatement sqlBuscarUltimaVenda;

    public VendaDAO() throws SQLException{
        connection = DBConnectFactory.getConnection(URL, USER, PASSWORD);

        sqlInserirVenda = connection.prepareStatement("INSERT INTO vendas(data, valor, pago, cdCliente) VALUES(?,?,?,?)");

        sqlAlterarVenda = connection.prepareStatement("UPDATE vendas SET data=?, valor=?, pago=?, cdCliente=? WHERE cdVenda=?");

        sqlDeletarVenda = connection.prepareStatement("DELETE FROM vendas WHERE cdVenda=?");

        sqlListarVenda = connection.prepareStatement("SELECT * FROM vendas");

        sqlBuscarVenda = connection.prepareStatement("SELECT * FROM vendas WHERE cdVenda=?");

        sqlBuscarUltimaVenda = connection.prepareStatement("SELECT max(cdVenda) FROM vendas");
    }

public List<Venda> listarVenda(){
        List<Venda> results = new ArrayList<>();
        ResultSet resultSet = null;

        try{
            resultSet = sqlListarVenda.executeQuery();

            while (resultSet.next()){
                Venda venda = new Venda();
                Pessoa pessoa = new Pessoa();
                List<ItemDeVenda> item = new ArrayList();

                //venda.setCdVenda(resultSet.getInt("cdVenda"));
                venda.setData(resultSet.getDate("data").toLocalDate());
                venda.setValor(resultSet.getDouble("valor"));
                venda.setPago(resultSet.getBoolean("pago"));
                pessoa.setId(resultSet.getInt("id"));

                PessoaDAO pessoaDAO = new PessoaDAO();
                pessoa = pessoaDAO.buscarPessoa(pessoa);

                ItemDeVendaDAO itemVenda = new ItemDeVendaDAO();
                item = itemVenda.listarPorVenda(venda);

                venda.setPessoa(pessoa);
                venda.setItensDeVenda(item);
                results.add(venda);
            }
            return results;
        }
        catch (SQLException e){
            e.printStackTrace();
        }
        return results;
    }
}

//meu Controller

public class ControllerProcessoDeVenda implements Initializable {
    @FXML
    private TableColumn<Venda, LocalDate> columnVendaData;

    @FXML
    private TableColumn<Venda, Pessoa> columnCliente;

    @FXML
    private TableView<Venda> tableVenda;

   /* @FXML
    private TableColumn<Venda, Integer> columnCodigoVenda;*/

    @FXML
    private Label lblCodigoVenda;

    @FXML
    private Label lblCliente;

    @FXML
    private Label lblData;

    @FXML
    private Label lblValor;

    @FXML
    private Label lblPago;

    Fachada fachada = new Fachada();
    private List<Venda> listaDeVenda = new ArrayList();
    private ObservableList<Venda> observableListVenda;

    @FXML
    public void initialize(URL location, ResourceBundle resources) {
        carregarTableView();
    }

    public void carregarTableView(){
        columnVendaData.setCellValueFactory(cellData -> cellData.getValue().getDataProperty());
        columnCliente.setCellValueFactory(cellData-> cellData.getValue().getPessoaProperty());

        DateTimeFormatter myDate = DateTimeFormatter.ofPattern("dd/mm/yyyy");

        columnVendaData.setCellFactory(column -> {
            return new TableCell<Venda, LocalDate>(){
                @Override
                protected void updateItem(LocalDate item, boolean empty){
                    super.updateItem(item, empty);

                    if (item == null || empty){
                        setText(null);
                        setText("");
                    }
                    else{
                        setText(myDate.format(item));
                    }
                }
            };
        });

        tableVenda.setItems(observableListVenda);

        listaDeVenda = fachada.listarVenda();

        observableListVenda = FXCollections.observableList(listaDeVenda);
        tableVenda.setItems(observableListVenda);
    }
}

Bom esse é o meu código, caso exista alguma irregularidade me ajudem por favor. a minha duvida é como faço para preencher esta coluna com esses valores ?

  1. Você vai ver essas setas em qualquer página de pergunta. Com elas, você pode dizer se uma pergunta ou uma resposta foram relevantes ou não.
  2. Edite sua pergunta ou resposta caso queira alterar ou adicionar detalhes.
  3. Caso haja alguma dúvida sobre a pergunta, adicione um comentário. O espaço de respostas deve ser utilizado apenas para responder a pergunta.
  4. Se o autor da pergunta marcar uma resposta como solucionada, esta marca aparecerá.
  5. Clique aqui para mais detalhes sobre o funcionamento do GUJ!

0 resposta

Não é a resposta que estava procurando? Procure outras perguntas com as tags java javafx netbeans mysql ou faça a sua própria pergunta.