Baixe o app para aproveitar ainda mais
Prévia do material em texto
CRUD SEM BD JAVA FX + SCENE BUILDER CRUD Todo programador já fez(ou vai fazer) um CRUD Simples CRUD em JavaFX CRUD é uma sigla de operações de armazenado em uma fonte de dados: Create, Retrieve, Update e Delete ONDE ARMAZENAR OS DADOS? Um banco de dados (MySQL, MariaDB, Postgres, etc) Um arquivo (arquivos em diversos formatos, como CSV) Um Web Service (que após chamado, salva os dados em algum lugar) Própria memória dinâmica do PC NOSSO CRUD Nossa aplicação simples vai ser um CRUD de Contas. Pagamos todo mês contas de luz, água, gás, faturas, etc, etc, argh. Para representar a conta, criamos um objeto Java chamado Conta com três atributos: id (gerado automaticamente para controle interno), concessionária, descrição e data de vencimento. NOSSO CRUD NOSSO CRUD Começamos com uma tabela com três colunas representando os campos, Após a tabela temos os campos de texto para entrada do nome, descrição e um campo para entrada de data do tipo DatePicker, e por fim os botões de ações. NOSSO CRUD A lógica da aplicação é a seguinte: A tabela tem ID tblContas e três colunas: clConc, clDesc e clVenc. Elas são populadas com os dados de um objeto do tipo Conta; Os campos de texto e o campo de data tem um (txtConc, txtDesc, dpVenc) serão injetados no controller para que possamos saber o valor que o usuário entrou; NOSSO CRUD Cada um dos botões ação: salvar: salva o objeto de acordo com a informação entrada pelo usuário. Não está habilitado quando um campo está selecionado na tabela; atualizar: Só está habilitado quando selecionamos uma linha da coluna e permite atualizar os dados dessa linha (os campos de entrada de dados vão ser atualizados com o valor selecionado para serem modificados pelo usuário); apagar: apaga a linha selecionada; limpar: limpa o campo selecionado atualmente. As operações e os elementos da tela ficam na classe ContasController. INTERFACE CONTASSERVICE As operações com o banco ficam na interface ContasService. Ela contém os métodos salvar, que recebe uma instância de conta a ser salva, atualizar, que recebe a conta já salva para ser atualizada, apagar, que apaga uma conta e buscarTodos, que retorna todas as contas selecionadas. É nessa classe que fazemos as operações. Todo o código poderia ficar dentro do controller? MVC Temos que definir os métodos em uma interface e Criamos um método getInstance para retornar a implementação que queremos dessa interface. INTERFACE CONTASSERVICE Assim, criamos a clase ContasCSVService, que é uma implementação da interface, e retornamos uma nova instância nesse método! Podemos, criar uma interface, por exemplo ContasBDService que faria a mesma coisa, mas que invés de usar um arquivo CSV, se comunica com um banco de dados, A mesma ideia poderia ser aplicada para um arquivo XLS, como ContasXLSService, e por aí vai. O código do controller, que os métodos da interface, não iria sofrer nenhuma modificação, pois só precisaríamos trocar a intância de ContasService retornada no método getNewInstance INTERFACE CONTASSERVICE
Compartilhar