A idéia básica é mostrar como se utilizar JPA (Java Persistence Api). JPA é o que se pode chamar de o novo Entity Beans que faz parte da especificação Java EE.
Mas não precisa ficar chateado, é muito, muito melhor que o Entity Bean. Quem conhece hibernate (que apesar de não fazer parte da especificação do J2EE acabou virando padrão de mercado devido a uma série de vantagens sobre o Entity Bean) vai achar o JPA muito parecido e não vai ter dificuldades em utilizá-lo. Em minha opinião sempre se deve utilizar padrões a não ser que a qualidade de uma ferramenta não padrão seja muito superior como foi o caso do Hibernate.
Para quem não sabe o que é Entity Bean e nunca ouviu falar em Hibernate não fique preocupado, siga lendo que você já vai entender, mas basicamente estas duas ferramentas fazem parte de um grupo de apis denominadas de Object/Relational que possibilitam que o programador crie Classes java as quais podem ser persistidas diretamente no banco de dados com o mínimo de uso de SQL o que possibita a utilização de Orientação a Objetos de uma maneira mais completa pois você não precisa quebrar o paradigma no momento da gravação dos dados.
JPA provê um tipo de "Interface" entre o programador e o que chama-se de Provider. O Interessante é que funcionando dessa maneira você poderia teóricamente modificar além do banco de dados o Provider sem nenhum impacto no código. O provider é a api que realmente persiste os dados no banco de dados como o topLink, Hibernate entre outros.
Como havia dito antes a arquitetura do JPA é muito semelhante a do Hibernate, diferente do Entity Bean que deveria obrigatoriamente ser rodado dentro do EJB Container, o JPA pode ser rodado dentro do servlet Container como o Tomcat. Você deverá utilizar um componente denominado Entity Manager que é semelhante do Session do Hibernate e para recuperar e modificar dados.
Basicamente uma Entidade JPA contém a seguinte sintaxe:
@Entity
@Table(name = "pessoa")
public class Pessoa implements Serializable {
@Id
@Column(name = "identificador", nullable = false)
private Integer identificador;
@Column(name = "nome", nullable = false)
private String nome;
@OneToMany(cascade = CascadeType.ALL, mappedBy = "identificadorPessoa")
private Collection
...
Você também vai precisar de um .xml contendo as informações de seu banco de dados e provider. No nosso exemplo o xml é criado transparentemente.
Para obter o EntityManager você simplesmente cria um Factory que lê o XML e cria o EntityManager.
EntityManagerFactory emf = Persistence.createEntityManagerFactory("WebApplication3PU");
EntityManager em = emf.createEntityManager();
Agora você já pode manipular os dados utilizando diretamente as classes:
em.getTransaction().begin();
em.persist(pessoa);
em.getTransaction().commit();
...
Pessoa o = (Pessoa) em.find(Pessoa.class, id);
Utilizando-se JPA você aumenta em muito a produtividade (comparando a utilizar JDBC na mão), entrentando existe uma maneira de aumentar ainda mais a produtividade. O Netbeans versão 5.5 vem com uma série de recursos que permite você construir praticamente tudo utilizando-se o "Pattern Next Next Next ;)". Server para fazer cruds rapidamente e também para construir a base de um sistema.
Aqui você pode acompanhar a criação de um crud para manipuação das entidades: Pessoa e Telefone.
Qualquer banco de dados pode ser utilizado desde que exista um driver JDBC compatível e que você possa criar Foreign Keys, entretando sugiro a utilização do Mysql 5 já que foi o utilizado para fazer o exemplo aqui disponivel. Você pode seguir os passos abaixo para instalar da maneira mais simples possível.1. Baixe o Mysql em formato msi (Instalador Windows) e instale deixando todas as opções como padrão, apenas lembre-se de no momento da requisição de senha optar por criar um usuário anonimo (não é a maneira politicamente correta, mas é a mais simples).
2. Baixe O GUI Tools que é um grupo de ferramentas para gráficas para manutenção do banco e Instale. A imagem acima foi criada utilizando-se a ferramenta MySql Workbench.
3. Também será necessário baixar o Connector/J que contém o driver JDBC.
Após instalar utilize a ferramenta Mysql Query Browser para criar as tabelas. Como você criou um usuário anonimo apenas use o login anonymous sem senha com o schema test que já vem criado no mysql. Você deve clicar com o botão direito no schema e optar por criar tabela.
Os scripts abaixo também podem ser utilizados:CREATE TABLE `test`.`pessoa` ( `identificador` INTEGER UNSIGNED NOT NULL AUTO_INCREMENT, `nome` VARCHAR(45) NOT NULL, PRIMARY KEY(`identificador`) ) ENGINE = InnoDB;
CREATE TABLE `test`.`telefone` ( `identificador` INTEGER UNSIGNED NOT NULL AUTO_INCREMENT, `numero` VARCHAR(45) NOT NULL, `identificador_pessoa` INTEGER UNSIGNED NOT NULL, PRIMARY KEY(`identificador`), CONSTRAINT `FK_telefone` FOREIGN KEY `FK_telefone` (`identificador_pessoa`) REFERENCES `pessoa` (`identificador`) ON DELETE RESTRICT ON UPDATE RESTRICT ) ENGINE = InnoDB;
Entrentando a GUI é bem simples e eficiente. Você deverá criar as tabelas Pessoa e Telefone. Não esquecendo de criar a Foreign Key na tabela telefone referenciando a tabela Pessoa.
Depois que você tiver criado o banco você assista o passo a passo da criação do crud.
Você pode baixar o projeto aqui.
É isso ai. Espero que tenham gostado.
1 comments:
Ai cara blz, Parabéns pelo blog e esses exemplos de hibernate. Tbm sou de Xanxerê, onde vc está no momento??
Trabalha com JAva???
Estou justamente fazendo as pós graduação em desenvolvimento Java.
Post a Comment