Netbeans JAVA e Hibernate Netbeans

JAVA e Hibernate – Aula de Criar Aplicação no Netbeans

 

Criando uma Aplicação JAVA e Hibernate

 

Nesta aula você vai aprender como utilizar o Hibernate com JAVA no Netbeans para acessar tabelas em um Banco de Dados MySQL. Uma das vantagens desta ferramenta executa este acesso sem que se precise conhecer SQL. A execução da sequencia para esta criação é muito rápida e prática. Na verdade, a etapa mais demorada é a criação do Banco de Dados.

Aviso: Caso não esteja seguindo um roteiro de aula e queira uma orientação em sequência das aulas, aqui, para aprender JAVA, acesse Aprender JAVA – Programar em JAVA

 

Próximo aprendizado:

Toolkit Swing e Hibernate em JAVA

 

Aprendizado anterior:

Conexão MySQL e Netbeans

 

O que é o Hibernate

 

Atenção: Siga os passos abaixo. Brinque e aprenderá. Tente fazer o que é solicitado. Muita atenção aos comentários. É importante faça para ver o que acontece. Irá descobrir algumas coisas por si só. Considere isto um DESAFIO. Perceba e já estará aprendendo muito. Pode ter certeza!Você pode aprender muito mais do que pensa!Não seja pessimista! Persista!

 

Siga os Passos

1.   Para este aprendizado de JAVA e Hibernate será necessário, em primeiro lugar, criar uma conexão, um banco de dados chamado empresa e uma tabela, nele, chamada cliente, em MySQL, exatamente como está descrito nos passos de Como Criar Conexão e Tabelas MySQL no NetBeans.ATENÇÃO: Faça a criação da tabela com muito cuidado para uma aprendizagem fácil

 

2.   Após a criação da tabela, crie uma aplicação chamada JavaApplicationEmpresa. Caso você não saiba criar uma aplicação no Netbeans aprenda a fazer isto acessando Como Criar uma Aplicação JAVA NetBeansLembre-se que o nome é JavaApplicationEmpresaO resultado é visto na imagem que segue.Hibernate Netbeans Criar Aplicacao

 

3.   Agora será acessado o Assistente de Configuração do Hibernate para configurá-lo para a aplicação criada. Para tal, siga as imagens que seguem.

Hibernate Netbeans Criar Aplicacao 1

Hibernate Netbeans Criar Aplicacao 2

Hibernate Netbeans Criar Aplicacao 3

Hibernate Netbeans Criar Aplicacao 4

 

4.   Após criada a configuração do Hibernate deverá ser criado uma configuração para o Assistente de Engenharia Reversa que permitirá o mapeamento de propriedades de classes com os dados no banco de dados. Veja como fazê-lo a seguir.

Hibernate Netbeans Criar Aplicacao 5Hibernate Netbeans Criar Aplicacao 6

 

5.   Agora será feito o mapeamento em Arquivos de Mapeamento do Hibernate e POJOs. Neste passo o resultado deste processo pode ser visto conforme a execução do que está definido nas imagens abaixo.

Hibernate Netbeans Criar Aplicacao 7Hibernate-Netbeans-Criar-Aplicacao-71

Hibernate Netbeans Criar Aplicacao 8

 

6.   Após criado o mapeamento, acima, será criada uma classe utilitária para o gerenciamento de objetos no banco de dados. Ela será a HibernateUtil. Basta seguir as imagens.

Hibernate Netbeans Criar Aplicacao 9

Hibernate Netbeans Criar Aplicacao 91

 

7.   Agora já é possível testar a gravação dos dados no banco de dados criando o código na main() da classe principal JavaApplicationEmpresa. Veja e siga atentamente as mensagens que seguem.

Hibernate Netbeans Criar Aplicacao 92

Hibernate Netbeans Criar Aplicacao 93

 

8.   Neste ponto, o gerenciamento é perfeitamente possível com o uso do Hibernate. No entanto, iremos sofisticar o acesso ao banco de dados criando uma classe DAOCliente (Data Access Object) que fará o papel de uma persistência. Após a criação desta classe serão criados, nela, os métodos vistos logo abaixo da imagem que segue. Siga com atenção cada uma delas.

Hibernate Netbeans Criar Aplicacao 94

    // Métodos definidos para classe DAOCliente
    // Lembre-se que SHIFT+ALT+F ajusa a endentação de todo o código automaticamente. 

    public void armazenar(Cliente cliente) {

        // AGORA É PRECISO ENVIAR O cliente PARA o BD
        // ASSIM, CRIA-SE UMA SESSÃO PARA ISTO
        Session session = DAOHibernateUtil.getSessionFactory().getCurrentSession();

        try {

            session.beginTransaction(); // Abre-se uma transação
            session.save(cliente);      // Acumula a operação de gravação do objeto cliente no BD, na transação
            session.getTransaction().commit();   // Realiza definitivamente todas as operações pendentes na transação
            JOptionPane.showMessageDialog(null, "Cliente armazenado com sucesso");

        } catch (Exception ex) {
            JOptionPane.showMessageDialog(null, ex);

        }
    }

    public void alterar(Cliente cliente) {

        // VAMOS ATUALIZAR O cliente PARA o BD
        // ASSIM, CRIA-SE UMA SESSÃO PARA ISTO
        Session session = DAOHibernateUtil.getSessionFactory().getCurrentSession();

        try {

            session.beginTransaction(); // Abre-se uma transação
            session.merge(cliente);      // Acumula a operação de alteração do objeto cliente no BD, na transação
            session.getTransaction().commit();   // Realiza definitivamente todas as operações pendentes na transação
            JOptionPane.showMessageDialog(null, "Cliente alterado com sucesso");

        } catch (Exception ex) {
            JOptionPane.showMessageDialog(null, ex);

        }
    }

    public void excluir(Cliente cliente) {

        // VAMOS EXCLUIR O cliente do BD
        // ASSIM, CRIA-SE UMA SESSÃO PARA ISTO
        Session session = DAOHibernateUtil.getSessionFactory().getCurrentSession();

        try {

            session.beginTransaction(); // Abre-se uma transação
            session.delete(cliente);    // Acumula a operação de exclusão do objeto cliente no BD, na transação
            session.getTransaction().commit();   // Realiza definitivamente todas as operações pendentes na transação
            JOptionPane.showMessageDialog(null, "Cliente excluído com sucesso");

        } catch (Exception ex) {
            JOptionPane.showMessageDialog(null, ex);

        }
    }

    public void listar() {

        // VAMOS listar OS clientes do BD
        // ASSIM, CRIA-SE UMA SESSÃO PARA ISTO
        Session session = DAOHibernateUtil.getSessionFactory().getCurrentSession();

        try {

            session.beginTransaction(); // Abre-se uma transação
            // Cria-se uma lista de clientes a partir do BD
            List listaClientes = session.createQuery("From Cliente").list();
            
            for (Iterator it = listaClientes.iterator(); it.hasNext();) {
                Cliente cliente = (Cliente) it.next();
                System.out.println("Nome do cliente: " + cliente.getNome());
                System.out.println("CPF do cliente: " + cliente.getCpf());
                System.out.println("Endereço do cliente: " + cliente.getEndereco());
            }

            JOptionPane.showMessageDialog(null, "Clientes listados com sucesso");

        } catch (Exception ex) {
            JOptionPane.showMessageDialog(null, ex);

        }
    }

 

9.   Adicione osa seguintes métodos na classe Cliente no pacote Controle e faça todas as importações necessárias.

    public void armazenar() {

        DAOCliente dAOCliente = new DAOCliente();
        dAOCliente.armazenar(this);

    }

    public void alterar() {

        DAOCliente dAOCliente = new DAOCliente();
        dAOCliente.alterar(this);
    }

    public void excluir() {

        DAOCliente dAOCliente = new DAOCliente();
        dAOCliente.excluir(this);
    }

 

10.  Para finalizar aplicação usando o Hibernate em JAVA NetBeans, a seguir, está códigos de teste para serem colocados no método main() da classe principal JavaApplicationEmpresa. Teste cada um com tranquilidade e paciência e veja os resultados diretamente na tabela empresa do banco de dados.

        // TESTE DE INCLUSÃO

        // VAMOS COMEÇAR CRIANDO ALGUNS OBJETOS CLIENTES
        Cliente cliente1 = new Cliente();

        // AGORA VAMOS PREENCHER AS PROPRIEDADES
        cliente1.setId(9);   // Isto diz assim: "Configure a propriedade id para 9"
        cliente1.setNome("Carlos");
        cliente1.setEndereco("Rua Cerqueira 23");
        cliente1.setCpf("111111111");

        cliente1.armazenar();


        // CRIEMOS OUTRO CLIENTE
        Cliente cliente2 = new Cliente();


        // AGORA VAMOS PREENCHER AS PROPRIEDADES
        cliente2.setId(29);   // Isto diz assim: "Configure a propriedade id para 29"
        cliente2.setNome("Paulo");
        cliente2.setEndereco("Rua JUCA 23");
        cliente2.setCpf("222222222");

        cliente2.armazenar();



        // CRIEMOS OUTRO CLIENTE
        Cliente cliente3 = new Cliente();

        // AGORA VAMOS PREENCHER AS PROPRIEDADES
        cliente3.setId(36);   // Isto diz assim: "Configure a propriedade id para 36"
        cliente3.setNome("Rodrigo");
        cliente3.setEndereco("Rua L 23");
        cliente3.setCpf("333333");

        cliente3.armazenar();

 

        // TESTE DE EXCLUSÃO

        // PREPARA O OBJETO CLIENTE
        Cliente cliente = new Cliente();
        cliente.setId(29); // Escolhe o Cliente que será excluído
        cliente.setCpf("222222222");
        cliente.setNome("JÚLIO");
        cliente.setEndereco("Rua CÉSAR 23");
        cliente.excluir();

 

        // TESTE DE ALTERAÇÃO

        // PREPARA O OBJETO CLIENTE
        Cliente cliente = new Cliente();
        cliente.setId(9); // Este é o Cliente que será alterado
        cliente.setNome("JÚLIO");
        cliente.setEndereco("Rua CÉSAR 23");
        cliente.setCpf("4444444);

        cliente.alterar();

 

OBSERVAÇÕES IMPORTANTES: 

A.   Não crie nomes de campos nas tabelas com caracteres especiais. Isto acarretará em problemas mo Mapeamento

 

B.   Todo campo que for que for criado  como not null no Banco de Dados, deverá ser configurado e passado na propriedade do objeto tanto na operação de alterar como na excluir o objeto. Caso contrário, o MySQL enviará um erro. Veja o CPF abaixo:

        // TESTE DE EXCLUSÃO

        // PREPARA O OBJETO CLIENTE
        Cliente cliente = new Cliente();
        cliente.setId(49); // Escolhe o Cliente que será excluído
        cliente.setCpf("55555555") // ESTE CAMPO FOI DEFINIDO COMO Not Null NO BD. LOGO, ESTA PROPRIEDADE DEVE SER PREENCHIDA TANTO PARA ALTERAÇÃO E EXCLUSÃO

        // EXCLUI O CLIENTE NO BD
        DAOCliente dAOCliente = new DAOCliente();
        dAOCliente.excluir(cliente);

 

 

É isto pessoal? O que foi possível aprender? Descreva! Colabore, aqui, entrando no grupo JAVA Netbeans para compartilhar seu aprendizado, disponibilizando-o na opção documentos. Compartilhe! Para saber como compartilhar veja Ensino livre.Já acabou!

Exercícios

Treino: Inclua nesta aplicação o gerenciamento das seguintes objetos com o Hibernate: Fornecedor, Funcionário, Equipamento. Determine você mesmo as propriedades destas classes.

Referências

(Você também pode usar o comentário para isto)

Apostila e tutorial gratuítos de Hibernate
Vídeos sobre Hibernate

Discussão/Idéias/Detalhes/etc

(Você também pode usar o comentário para isto)

Mais informações