Archive

Posts Tagged ‘ejb’

Participação na MundoJava 33

January 24th, 2009

capamundojava33

Escrevi em dupla com Tarso Bessa o artigo EJB vs Spring: uma disputa de gigantes na Mundo Java edição 33, referente aos meses de janeiro e fevereiro.

Ministramos uma palestra no CEJUG sobre esse conteúdo em abril do ano passado e também no JustJava 08 em São Paulo. A única ressalva é que não utilizamos o tema das palestras como o nome do artigo.

Tive a oportunidade de conhecer o Eduardo Guerra em agosto de 2008 (em um evento do CEJUG) e em conversas sobre o mundo Java ele nos convidou para escrevermos um artigo sobre  o assunto da nossa palestra no JustJava.

A idéia e intuito da criação do artigo não era de definir que X é melhor do que Y, e sim a idéia de compararmos os principais recursos das duas tecnologias (segurança, transações, mensageria, etc) e mostrar para o desenvolvedor que cabe apenas a ele escolher qual tecnologia trará mais benefícios. Isso não faria o menor sentido, até porque já existem diversas comparações na internet sobre esse assunto e até hoje os caríssimos Rod Johnson e Bill Burke travam uma guerra interminável sobre esse assunto.

Veja um trecho introdutório do artigo:

O objetivo deste artigo é realizar um comparativo entre o Spring e EJB 3 em quesitos que são fundamentais para as aplicações de hoje. Para isso, foi desenvolvida uma aplicação semelhante a uma loja virtual explorando como esses dois gigantes se comportariam diante de requisitos que tinham que ser implementados de uma forma similar. Os seguintes tópicos foram abordados: Injeção de Dependência, Controle de Transações, Agendamento, Suporte à Orientação a Aspectos, Web Services, Serviços de Mensagens e, por último, Segurança. Cada tópico desses tem uma relação com um requisito da aplicação: agendamento para checagem de estoque de produtos; aspectos para gravação de histórico de alteração de dados; segurança para proteção das páginas que envolvem transações financeiras; Web Services para disponibilizar a lista de produtos da loja para aplicativos externos; serviço de mensagens assíncronas para processamento de pagamento; controle de transações para garantir a integridade dos dados e controle de concorrência; e por fim, injeção de dependência para simplificar a programação da aplicação.

boas práticas, frameworks, java, javaee , , , ,

Apresentação, códigos e comentários do JustJava 2008

October 3rd, 2008

Nos dias 11 e 12 de setembro participei, junto com Tarso Bessa, do JustJava 2008. Nessa edição, fomos como palestrantes e realizamos uma apresentação com o título “Os melhores do mundo: um comparativo entre Spring e EJB 3.0″.

Foi a minha primeira participação no JustJava e o evento atingiu todas as minhas expectativas. Só não foi melhor porque não pude comparecer no primeiro dia. Durante os intervalos, reencontrei alguns amigos e também conheci muita gente boa. Leandro Sales, Rafael Ponte, Igo Coelho e Régis Santos marcaram presença como membros do CEJUG e três integrantes do PortalJava, que são Guilherme Mello, a Michela e Marcos Sousa, completaram a “galera” reunida no JustJava.

Para finalizar, gostaria de agradecer o apoio da IVIA (empresa na qual trabalhamos), parabenizar o SouJava, através da representação do Maurício Leal e Cláudio Miranda, e também a organização do evento, que estava totalmente profissional.

Espero participar da edição do próximo ano!

Apresentação

Aplicações

Spring | EJB 3.0

Comentários

1º dia | 2º dia | 3º dia

Fotos

2858703768_f4b8220b4f.jpg2857877243_a5bfb4361c.jpg

Palestra

2858700812_b5f7fd3d2d.jpg

Galera no JustJava 08

2857883773_93d0b4dbfb.jpg

Tarso Bessa e eu

cejug, eventos, frameworks, ide´s, ivia, java, javaee, open source, portaljava , , , , , ,

Nos veremos no JustJava 2008

August 24th, 2008

justjava_logo2.pngO 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!

eventos, frameworks, java, javaee, portaljava , , , ,

Cartões para todos os gostos

June 5th, 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.cartao-refcardz.jpg

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.

frameworks, ide´s, java, javaee , , ,

Parâmetros no EJB QL

December 28th, 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

boas práticas, certificação, javaee , , , ,

Vídeos-aula de JSF

November 8th, 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.

ide´s, java , , ,

Primeiras impressões do Eclipse Europa

July 9th, 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!

Links relacionados

ide´s , , , ,

Iniciando com JPA

May 20th, 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 Ob
ject) 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:

Figura 1


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.

Figura 2

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.

Figura 3

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!

Download do exemplo
Screencast excelente sobre JPA

javaee , ,