DevMedia
Você precisa estar logado para dar um feedback. Clique aqui para efetuar o login
Para efetuar o download você precisa estar logado. Clique aqui para efetuar o login

NetBeans 6.0 – Swing Application Framework – Parte II

Crie aplicações desktop Java em poucos minutos usando o novo Swing Aplication Framework com o Netbeans 6.0

[fechar]

Você não gostou da qualidade deste conteúdo?

(opcional) Você poderia comentar o que não lhe agradou?

Confirmo meu voto negativo

 

Crie aplicações desktop Java em poucos minutos usando o novo Swing Aplication Framework com o Netbeans 6.0

 

Antonio Peixoto da Cunha Junior e Marcos Alberto Lopes da Silva

 

Por trás dos bastidores

O Netbeans 6.0 utiliza JPA (Java Persistence API) que é a especificação padrão para o gerenciamento de persistência e mapeamento objeto relacional, que vem para e simplificar o desenvolvimento de aplicações que utilizam persistência de dados. Um dos principais conceitos relacionados à API JPA é o de entidade. É bom lembrar que, uma entidade corresponde a um objeto que pode ser gravado na base de dados a partir de um mecanismo de persistência. O Netbeans 6.0 gera um arquivo “Persistence.xml”, responsável por fazer a conexão com o banco, criando  assim uma camada de abstração entre o JDBC e o código. O uso dessa solução é bastante recomendada devido a sua estabilidade, boa documentação e facilidade de uso.  

 

<?xml version="1.0" encoding="UTF-8"?>

<persistence version="1.0" xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd">

  <persistence-unit name="samplePU" transaction-type="RESOURCE_LOCAL">

    <provider>oracle.toplink.essentials.PersistenceProvider</provider>

    <class>ppessoa.Pessoa</class>

    <properties>

      <property name="toplink.jdbc.url" value="jdbc:derby://localhost:1527/sample"/>

      <property name="toplink.jdbc.user" value="app"/>

      <property name="toplink.jdbc.driver" value="org.apache.derby.jdbc.ClientDriver"/>

      <property name="toplink.jdbc.password" value="app"/>

    </properties>

  </persistence-unit>

</persistence>

Listagem 2. Arquivo XML gerado no Netbeans 6.0

 

Nesta aplicação o framework gera uma classe persistente  “Pessoa.java”. Tal persistência permite que um objeto continue a existir mesmo após a destruição do processo que o criou. Na verdade, o que continua a existir é seu estado, já que pode ser armazenado em disco. Além disso, são geradas várias Queries de consultas.

 

@Entity

@Table(name = "PESSOA")

@NamedQueries( {@NamedQuery(name = "Pessoa.findByCodigo", query = "SELECT p FROM Pessoa p WHERE p.codigo = :codigo"),

@NamedQuery(name = "Pessoa.findByNome", query = "SELECT p FROM Pessoa p WHERE p.nome = :nome"),

@NamedQuery(name = "Pessoa.findByDataNascimento", query = "SELECT p FROM Pessoa p WHERE p.dataNascimento = :dataNascimento"),

@NamedQuery(name = "Pessoa.findBySexo", query = "SELECT p FROM Pessoa p WHERE p.sexo = :sexo")})

public class Pessoa implements Serializable {

    @Transient

    private PropertyChangeSupport changeSupport = new PropertyChangeSupport(this);

    @Id

    @Column(name = "CODIGO", nullable = false)

    private Integer codigo;

    @Column(name = "NOME")

    private String nome;

    @Column(name = "DATA_NASCIMENTO")

    @Temporal(TemporalType.DATE)

    private Date dataNascimento;

    @Column(name = "SEXO")

    private String sexo;

 

    public Pessoa() {

    }

 

    public Pessoa(Integer codigo) {

        this.codigo = codigo;

    }

 

    public Integer getCodigo() {

        return codigo;

    }

 

    public void setCodigo(Integer codigo) {

        Integer oldCodigo = this.codigo;

        this.codigo = codigo;

        changeSupport.firePropertyChange("codigo", oldCodigo, codigo);

    }

Listagem 3.  Fragmento da classe “Pessoa.java”

 

Uma vez gerada a classe persistente, existe a necessidade de que a aplicação interaja com uma camada de persistência. Isso é feito invocando o gerenciador de persistência, também conhecido como gerenciador de entidades (da classe EntityManager), responsável por quase todas as operações de persistência de objetos. A classe PPessoaFrame gerada pelo próprio NetBeans é responsável por gerenciar o ciclo de vida das entidades do formulário.


Assim, o objeto gerenciador de entidades (entityManager) é obtido nesse método invocando o método createEntityManagerFactory da classe Persistence passando como argumento o nome da unidade de persistência (declarado no arquivo Persistence.xml). O código da obtenção do objeto entityManager pode ser visto na Listagem 4.

 

private void initComponents() {

   bindingContext = new javax.beans.binding.BindingContext();

 

   taskMonitor = new application.TaskMonitor();

   entityManager = Persistence.createEntityManagerFactory("samplePU").createEntityManager();

     // código retirado para motivos de clareza do artigo

}

Listagem 4. Fragmento do método initComponents da  classe PPessoaFrame   

 

Toda operação de manutenção do objeto no banco de dados (salvar, recuperar, atualizar e apagar) passa a ser executada e gerenciada pelo objeto gerenciador de persistência (entityManager). O código que demonstra a operação de persistir um novo objeto no banco (salvar) pode ser visto na Listagem 5.

 

    @Action public void newRecord() {

        ppessoa.Pessoa p = new ppessoa.Pessoa();

        entityManager.persist(p);

        list.add(p);

        int row = list.size()-1;

        masterTable.setRowSelectionInterval(row, row);

        masterTable.scrollRectToVisible(masterTable.getCellRect(row, 0, true));

    }

Leia também



Eduardo Oliveira Spínola (eduspinola@gmail.com - http://eduspinola.googlepages.com/home) é Bacharel em Ciência da Computação pela Universidade Salvador - UNIFACS, em 2005. Atualmente fazendo o Mestrado em Engenharia de Software pe [...]

O que você achou deste post?
Conhece a assinatura MVP?
Serviços

Mais posts