Monthly Archives: December 2007

Parâmetros no EJB QL

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

A importância do Reflection no Java

Para alguns a utilização de reflection no java é novidade, mas não é novidade. Reflection existe desde a versão 1.1 do Java e somente nos últimos tempos que vem chamando atenção na comunidade.

O motivo para essa visibilidade se deu por conta da injeção de dependência (do inglês dependency injection, ou simplesmente DI), que apareceu no framework Spring e logo em seguida no EJB 3.0.

Você acha que Strings são imutáveis? Sim, elas são. Mas utilizando reflection essa afirmação pode ser modificada.

Você acha que atributos privados não podem ser acessados por outras classes? Não podem, mas utilizando reflection tem como outra classe acessar os atributos privados.

E agora? Meu código estará vulnerável por causa do reflection?

Você pode limitar o uso de reflection em seus projetos, utilizando o SecurityManager para impedir modificações em atributos, construtores e métodos.

Portanto, o uso de reflection trás inúmeras facilidades e poder para o desenvolvimento. A Java Persistence API também utiliza reflection para descobrir os mapeamentos, as classes que se relacionam entre si, os tipos dos atributos e muito mais.

Leitura recomendada

Livro

Conhecendo a annotation @Id

Se você colocar a annotation (anotação) @Id em atributos, o provedor de persistência saberá que todos os seus mapeamentos estarão contidos em atributos. Isso ocorrerá automaticamente, pois a anotação que rege esse comportamento é justamente a annotation @Id.

Exemplo:

@Entity
public class User {

@Id
private Integer id;

private String nome;

//outros atributos

//construtores

//métodos acessores (getters e setters)

}

Agora, se você utilizar o padrão JavaBeans e colocar a annotation @Id em métodos getters, por exemplo, o provedor de persistência saberá que todos os seus mapeamentos estarão em métodos getters.

Exemplo:


@Entity
public class User {

private Integer id;

private String nome;

//outros atributos

//construtores

@Id
public Integer getId() {
   return this.id;
}

public String getNome() {
   return this.nome;
}

//outros métodos acessores (getters e setters)

Ruby on Rails vs outras linguagens

Navegando no youtube achei uns vídeos hilários comparando o Ruby on Rails com outras linguagens. Coloquei apenas os vídeos sobre Ruby versus Java, .NET e PHP. No youtube você encontrará sobre outras linguagens. Vale a pena assistir. 🙂

Ruby on Rails vs Java

[youtube:http://www.youtube.com/watch?v=PQbuyKUaKFo&feature=related]

Ruby on Rails vs .NET

[youtube:http://www.youtube.com/watch?v=528BCJiRkks&feature=related]

Ruby on Rails vs PHP

[youtube:http://www.youtube.com/watch?v=n1NVfDlU6yQ&feature=related]

Cobertura do Café com Tapioca de dezembro: Testes de Unidade com JUnit

Comentários

Ocorreu no último sábado (15/12/07) na UFC o Café com Tapioca com a palestra Testes de Unidade com JUnit, ministrada pelo Fabrício Lemos. O evento contou com a participação de 52 pessoas, que se mostraram bastante interessadas pelos diversos conteúdos abordados na palestra, como: JUnit, EasyMock, DbUnit e TDD (Test Driven Design).

O palestrante explicou o conteúdo de uma forma clara, objetiva e sucinta, sanando as dúvidas dos participantes.

Material

Slides

Fotos

http://picasaweb.google.com/cafecomtapioca

Vídeos

[youtube:http://www.youtube.com/watch?v=8jny_MkHQZM]

[youtube:http://www.youtube.com/watch?v=aro3WSsleF0]

Página do evento

http://www.cejug.org/display/cejug/Testes+de+Unidade+com+JUnit+-+%2815.12.07%29

Café com Tapioca recheado de testes

No próximo dia 15/12 (sábado) acontecerá o Café com Tapioca de dezembro, com a palestra Testes de Unidade com JUnit, que será ministrada por Fabrício Lemos.

O evento contará com a participação especial de Phillip Calçado, através de vídeo-conferência, diretamente de Melbourne – Austrália.
Não deixe de levar 1 kg de alimento não perecível para ser doado em instituições de caridade.

Informações e inscrições: cafecomtapioca@cejug.org