Cadastro Cliente JAVA JPA sem Interface Netbeans

Netbeans – Gerando um Cadastro de Clientes sem Interface

Nesta postagem você vai aprender a criar um pequeno e simples cadastro de clientes no Netbeans utilizando banco de dados e tabelas MySQL e JPA. Acompanhe!

 

 

Passos para Criar o Cadastro de Clientes

Em alguns casos, siga as elipses ou indicações nas imagens para criar o BD Cadastro de Clientes. Seguindo as elipses talvez você possa aprender rapidamente a executar estas tarefas Lembre-se que o MySQL e o Netbeans devem estar instalados em sua máquina.

Apenas para dar um sentido, a imagem abaixo representa as camadas que armazenarão as classes do sistema em JAVA no Netbeans.

 Modelo-de-sistema-em-camadas sem interface

Para saber mais sobre desenvolvimento em camadas veja wikipédia

 

 

Criar o Banco de Dados e Tabelas em MySQL

Para isto você deve criar exatamente o BD e as tabelas apresentadas neste link: Netbeans: Criando Banco de Dados e Tabelas MySQL

 

 

Criar uma Aplicação JAVA no Netbeans chamada JavaApplicationCadastroCliente

Para criar uma aplicação JAVA no Netbeans veja: Criar uma Aplicação JAVA no Netbeans

 

 

Criar Entidades de Banco de Dados Cliente e Compra

A. Criar um pacote chamado controle

Cadastro Cliente JAVA JPA Criar pacote

 

B. Criar as Classes de Entidade do Banco de Dados Cliente e Compra

Cadastro Cliente JAVA JPA Ent BD

 

Adicionar as classes na caixa de tabelas selecionadas

Cadastro Cliente JAVA JPA Ent BD 1

 

Configurar pacote caso seja necessário

Cadastro Cliente JAVA JPA Ent BD 2

 

Configurar atributos para regeneração completa das tabelas caso sejam criadas automaticamente.

Cadastro Cliente JAVA JPA Ent BD 3

 

Configurar tabelas para criação automática caso elas não existam.

Cadastro Cliente JAVA JPA Ent BD 4

 

 

Criar Classes de Persistência (DAO)

Cadastro Cliente JAVA JPA DAO 1

 

Adicionar Classes de Entidades para Selecionados e Criação das Persistências.

Cadastro Cliente JAVA JPA DAO 2

 

Configure o nome do pacote que vai armazenar as classes (dao – Data Access Object

Cadastro Cliente JAVA JPA DAO 3

 

Resultado

Cadastro Cliente JAVA JPA DAO 4

Observações :

1.   Na janela Navegador você vê as classes de persistência criadas e seus métodos para gerenciamento das entidades. Entre eles o create que cria o objeto entidade na tabela, o destroy que exclui a entidade da tabela etc

2.   DAO.exceptions é gerado para disponibilizar manipulação de erros sobre  operações de persistência

3.   O EntityManager é um serviço responsável por gerenciar as entidades, através dele é possível gerenciar o ciclo de vida das entidades, operação de sincronização com a base de dados (inserir, atualizar ou remover), consultar entidades e outros. Quando uma Entity está associada a um EntityManager, dizemos que esta entidade está no contexto gerenciável, onde todas as operações realizadas no objeto da Entity é refletido no banco de dados. Todas as identidades das entidades são únicas e para cada registro no banco de dados haverá apenas uma referencia no contexto do EntityManager.

4.   EntityManagerFactory é a interface utilizada para interagir como gestor de fábrica para o EntityManager. Quando o aplicativo tiver terminado de usar a EntityManagerFactory, e / ou no encerramento do aplicativo, ele deve fecha-lá. Uma vez que um EntityManagerFactory foi fechado, todos os EntityManager são considerados fechados.

 

 

Configurar o Driver JDBC MySQL

Cadastro Cliente JAVA JPA DRV MYSQL 1

 

Resultado

Cadastro Cliente JAVA JPA DRV MYSQL 2

Observações :

1.   Você pode usar como persistência o eclipselink JPA ou Hibernate JPA. Acima está anotada a biblioteca do eclipselink JPA. Caso queira usar o Hibernate é necessário executar a mesma sequência feita acima para Driver JDBC do MySQL selecionando Hibernate e clicando sobre Adicionar Biblioteca. Após esta inclusão acesse persistence.xml na janela de Projetos e você poderá usar o eclipselink JPA ou Hibernate JPA. Veja na imagem abaixo.

2.   ATENÇÂO: Na opção de Estratégia de Criação de Tabelas  da Unidade de Persistência gerada em persistente.xml, usaremos a opção Criar para que as tabelas sejam criadas, caso elas não existam. Abaixo.

Netbeans Agenda JAVA 5 Partilho

 

 

Códigos Fontes para Copiar ou Digitar

A.   Adicione o código seguinte nas classes Cliente e Compra criadas, após @Id, para permitir uma uma incrementação automática da chave primária na tabela no banco de dados. Será necessário adicionar duas importações (import javax.persistence.GeneratedValue; e import javax.persistence.GenerationType;) clicando com o botão esquerdo do mouse sobre o ícone da lâmpada com indicação em vermelho na barra numerada à esquerda ou digitando-os em cima do código fonte.

 

B.   Adicione o método abaixo, no final na classe ClienteJpaController, antes do último fecha chave (}), para ser possível fazer a busca por cpf do usuário. O Script de Cliente.findByCpf com o parâmetro de busca cpf é encontrado na classe de controle Cliente escrito como @NamedQuery(name = “Cliente.findByCpf”, query = “SELECT c FROM Cliente c WHERE c.cpf = :cpf”). Confira!

 

C.   Adicione os métodos abaixo, nas classes, como indicado (Vá até a classe e no código fonte procure a última chave (}) e copie ou digite todo o código antes dela), e adicione as devidas importações clicando com o botão esquerdo do mouse sobre o ícone da lâmpada com sinal em vermelho na barra numerada na esquerda do editor, caso ele apareça. Ajuste todo o código com Shift + Alt + F

Métodos para classe Cliente

 

Métodos para classe Compra

 

Observações:

1.   Uma Entity é um objeto leve de domínio persistente utilizado para representar uma tabela da base de dados, sendo que cada instância da Entity corresponde a uma linha da tabela. A Entity é baseada em um simples POJO (Plain Old Java Object), ou seja, uma classe Java comum, com anotações (@) para fornecer informações mais especifica para o gerenciador das entidades (EntityManager).

2.   É gerado uma unidade de persistência persistence.xml. A unidade de persistência é utilizada para configurar as informações referentes ao provedor do JPA (implementação da especificação JPA) e ao banco de dados, também podemos identificar as classes que serão mapeadas como entidades do banco de dados. Para definir a unidade de persistência utilizamos um arquivo XML chamado persistence.xml que deve ser criado dentro da pasta META-INF do projeto, através deste arquivo podemos definir quantas unidades de persistência for necessárias para o projeto.

3.   Importantíssimo: Em todas as linhas EntityManagerFactory emf = Persistence.createEntityManagerFactory(JavaApplicationCadastroClientePU); o nome de string passado ao método deve, obrigatoriamente, ser o nome da unidade de persistência, no caso JavaApplicationCadastroClientePU

 

 

Teste do Cadastro de Clientes sem Interface

A.   Copie  o código abaixo na main() da classe JavaApplicationCadastroCliente, adicionando as importações necessárias e rode-o.

Observação:

Em caso de erro verifique:

1.   Clicando sobre persistente.xml em Projetos, se foi selecionada a estratégia de criação de tabelas Criar

2.   Veja o item 3 de observações do tópico anterior.

 

B.   Veja o resultado do programa acessando a janela Serviços e clicando com o botão direito do mouse sobre o nome de cada uma das tabelas e solicitando Exibir Dados… Observe que foi criado o cliente e suas compras. Anote um id de uma das compras na tabela Compra

C.   Agora vamos retirar a compra com o id, anotado antes no item B., trocando o código antes digitado na main() pelo que está abaixo, e rode-o (Substitua 753 por seu id anotado). Veja o resultado, exibindo os dados da tabela Compra. Observe que a linha do registro na tabela foi excluída. 

 

D.   Agora faça o seguinte teste:

1.   Exclua as tabelas SequenceCliente e Compra através do botão direito do mouse sobre elas na janela de Serviços

2.   Selecione persistente.xml na janela de projetos clicando com o botão esquerdo duas vezes (Duplo clique). Em Design em Estratégia de Criação de Tabelas e selecione a opção Criar caso ela não esteja selecionada(Isto diz que caso a tabela não exista, o programa as criará automaticamente com base nas anotações (@) geradas nas classes do pacote controle).

3.   Retorne ao item A, acima, e execute novamente o que é pedido.

 

 

Exercícios

Crie uma aplicação cadastro de fornecedores e vendas como a apresentada acima onde os scripts para as tabelas em MySQL seguem:

 

 

Referências

 

Netbeans – JPA eclipselink

Netbeans JPA Tutorial

Tutorial JPA