|
www.flickr.com
Esse é um módulo do Flickr que mostra fotos e vÃÂdeos públicos de Rafael Carneiro. Faça seu próprio módulo aqui.
|
August 24, 2008
O envio do meu trabalho o qual submeti para o JustJava, foi aprovado. Agora, já está quase tudo pronto para a minha ida a São Paulo em setembro. A palestra será em dupla com meu parceiro Tarso Bessa (membro e palestrante do CEJUG). O assunto será Os melhores do mundo: um comparativo entre Spring e EJB 3.0.
Enviamos nosso trabalho para análise em junho e soubemos nessa semana que ele foi aceito. Será a primeira vez que participarei de um evento de âmbito nacional. Terei a oportunidade (finalmente) de conhecer os meus amigos do Portal Java e alguns amigos do GUJ, de listas de discussões e de outros meios (blogs, twitter, etc).
A grade deste ano está com diversos temas interessantes e alguns nomes que conheço, como: Paulo Silveira, Guilherme Chapiewski, Eduardo Guerra, Cláudio Miranda e Edgar Silva.
Espero encontrar muita gente boa do PortalJava e do GUJ para falar sobre Java. Não esqueçam de me convidar para os after hours.
Just Java 08, aà vamos nós!
June 5, 2008
A REFCARDZ lançou um serviço muito bom de cartões. Ela simplesmente elabora cartões com dicas e configurações rápidas das principais tecnologias e ferramentas do mundo Java. Juliano Carniel já blogou sobre os cartões, mas recentemente a refcardz lançou um novo cartão: Dependency Injection in EJB 3.0.
Cartões disponÃveis:
- Windows PowerShell
- Spring Configuration
- Getting Started with Eclipse
- Getting Started with Ajax
- GWT Style, Configuration and JSNI Reference
Para obter os cartões basta fazer o cadastro no site da refcardz que você receberá um e-mail com o link para fazer o download dos cartões.
December 28, 2007
Utilizando o objeto PreparedStatement do JDBC, você configura os parâmetros da sua consulta SQL da seguinte maneira:
PreparedStatement stmt = seuObjetoConnection.
prepareStatement("select * from user where idade = ? and nome = ?");
stmt.setInt(1,idade);
stmt.setString(2,nome);
Existem duas maneiras de configurar parâmetros para consultas na EJB QL: identificados e posicionais.
Identificados
Query query = entityManager.
createQuery("from User u where u.idade =:idade and u.nome =:nome");query.setParameter("idade",idade);
query.setParameter("nome",nome);
Posicionais
Query query = entityManager.
createQuery("from User u where u.idade =?1 and u.nome =?2");query.setParameter(1,idade);
query.setParameter(2,nome);
As diferenças entre parâmetros identificados e posicionais:
- identificados: :nome_Do_Parametro
- posicionais: ?numero_Do_Parametro
November 8, 2007
Aderindo a onda de desenvolvimento em JSF, o blog screencast publicou duas vÃdeos-aula sobre a utilização de JSF no eclipse europa em duas partes: a primeira, fala sobre como registrar a implementação no eclipse até rodar uma aplicação de exemplo. A segunda fala sobre como colocar JSF e EJB em sua aplicação JEE.
July 9, 2007
Hoje descompactei o Eclipse Europa para desenvolvedores JEE e fiquei muito satisfeito com essa nova versão. O WTP 2.0 foi lançado e já está disponÃvel nessa versão. Possibilita a criação de vários projetos como: JPA, EJB, J2EE, Web Services e outros. E o melhor, já cria toda a estrutura de diretórios. Possui também auto-complete para as Annotations. A partir de amanhã já irei trabalhar utilizando o Eclipse Europa!
May 20, 2007
JPA, acrônimo de Java Persistence API, que veio junto com o Java EE 5, trouxe diversas funcionalidades que ajudam e muito a vida dos desenvolvedores. A JPA faz parte da especificação EJB 3.0, porém à rumores de que na versão 6 do Java EE ela seja retirada dessa especificação.
A JPA é caracterizada em três áreas:
- Java Persistence API
- Query Language
- Mapeamento Objeto/Relacional
Logo abaixo irei dar exemplos de como inserir uma entidade no banco de dados, utilizando as annotations do EJB 3.0, os objetos do JPA , o banco de dados MySQL 5.0 e o Oracle TopLink como provider.
Iremos precisar de algumas libs para este exemplo, no final do post tem um link para você baixar o exemplo completo, com as classes e as libs necessárias.
- Criando a entidade
Iremos criar a nossa classe de entidade chamada Usuario, que irá possuir os seguintes atributos: id, login, password e nome.
Ela nada mais é do que um simples POJO (Plain Old Java Object) com alguns atributos, métodos acessores e não herda de nenhuma classe. Em aplicações coorporativas que utilizam toda a especificação EJB é necessário que essas classes possuam mais caracterÃsticas, como serialização por exemplo.
Vamos aos códigos:
Na linha 10 eu informo que esse objeto será uma entidade, marcando com a annotation @Entity.
Na linha 11 informo o nome da tabela, atráves da annotation @Table, usando o atributo name da mesma.
Já na linhas 14 e 15, indico que este atributo será um id (marcado com a annotation @Id) e que a sua estratégia de geração de valores no banco será IDENTITY (para o Oracle usa-se SEQUENCE).
Os demais atributos são marcados com @Column, porém não é necessário fazê-lo, a menos que você quizesse utilizar alguns dos atributos dessa annotation, como name, que indica qual vai ser o nome da coluna no banco.
- Criando a classe UsuarioDAO para persistência
Como este post é apenas um exemplo simples de persistência utilizando JPA, criei apenas uma classe DAO (padrão de projeto Data Access Object) que contém o código principal para a persistência.
Na linha 18 eu crio meu objeto factory, recebendo a instância do provider, que irá encontrar o nome do persistence-unit no arquivo persistence.xml.
Em seguinda, na linha 19 eu crio o objeto EntityManager, que é o principal objeto para a persistência na JPA.
O método inserirUsuario utiliza o objeto EntityTransaction, para transações.
Na linha 35 o objeto eu chamo o método persist do objeto EntityManager, passando a entidade para ser gravada no banco.
Existem vários outros métodos relacionados a persistência, como o find, delete, merge e outros. Aconselho dar uma lida na especificação para conhecer estes métodos, quais seus propósitos e suas funcionalidades.
- Arquivo de configuração (persistence.xml)
Esse é o arquivo de configuração, que configura o nome da unidade de persistência, o tipo de transação, as configurações de banco, o provider, as classes de entidades e etc.
Atenção para a linha 15, essa propriedade informa o tipo de geração das tabelas do banco. Na primeira vez que você rodar o exemplo, o provider irá criar as tabelas no schema exemplojpa.
Se você tentar rodar novamente o exemplo sem comentar ou tirar essa linha, irá gerar um erro informando que já existe uma tabela criada no banco, mas os dados irão ser persistidos. Então ao rodar a primeira vez, comente essa linha ou troque o tipo de geração.
Abaixo você poderá fazer o download do exemplo, com as classes, as libs e o persistence.xml (arquivo de configuração).
Este exemplo foi bastante simples e a JPA é bastante vasta, portanto baixe as especificações e estude mais afundo sobre esse excelente meio de persistência!



