Arquivo
Generic Data Access Object com Eclipse Link
Olá, nesse post estará um código fonte de um Generic DAO utilizando a biblioteca de persistência Eclipse Link (somente o código da classe Generic DAO, não entrarei nos detalhes de configuração da conexão com banco de dados).
É possível realizar o download da biblioteca em: EclipseLink Home
O mais importante antes de construir o DAO Genérico, é ter conhecimento sobre Generics e Java Reflection, pois apresentam-se dois problemas:
- Tipo dos parâmetros nos métodos: por exemplo no método inserir, você deve passar um objeto do tipo da entidade que se deseja adicionar;
- Obter classe da entidade: por exemplo no get você precisa saber qual o tipo da entidade a ser retornada;
import java.util.List;
import javax.persistence.EntityManager;
import javax.persistence.Persistence;
public class GenericDAO <T>{
/*cria um gerenciador de entidades, a partir da fábrica de gerenciadores de entidade
Obs: não utilizar static, pois pode gerar problemas em relacionamentos Many-To-Many */
private EntityManager em = Persistence.createEntityManagerFactory("UP").createEntityManager();
//Atributo do tipo classe utilizado no Java Reflection
private Class classe;
public GenericDAO(Class classe) {
//faz o atributo classe receber a classe da entidade, que deve ser passada no construtor
this.classe = classe;
}
//Método para inserir um registro no banco de dados a partir de um objeto
public void insert(T entidade){
em.getTransaction().begin();
em.persist(entidade);
em.getTransaction().commit();
}
//Método para atualizar um registro no banco de dados a partir de um objeto
public void update(T entidade){
em.getTransaction().begin();
em.merge(entidade);
em.getTransaction().commit();
}
//Método para obter um registro no banco de dados a partir de um id
public T get(int id){
return (T)em.find(classe, id);
}
//Método para remover um registro no banco de dados a partir de um id
public void remove(int id){
T entidade = get(id);
if(entidade!=null){
em.getTransaction().begin();
em.remove(entidade);
em.getTransaction().commit();
}
}
//Retorna todos os registros no banco de dados da tabela equivalente a entidade passada por parâmetro
public List<T> list(){
return em.createQuery("SELECT e FROM " + classe.getSimpleName() + " e").getResultList();
}
}
Somando dois números no java
Bom… Nesse post apenas quero dar um exemplo simples da soma de dois números para mostrar a estrutura de uma classe com o método main.
public class SomaDoisNumeros{
/*O método principal é o método main, por onde começará a execução do programa.
Ele deve ser estático e deve receber um vetor de strings como parâmetro.
Toda aplicação (projeto) deve possuir um método main.
*/
public static void main(String args[]){
int x = 5;
int y = 10;
int soma = x + y;
System.out.println("A soma de x e y é igual a " + soma);
}
}
Tipos primitivos no Java
A linguagem Java oferece 8 tipos primitivos para utilização, sendo 1 lógico, 1 para caractere, 4 para números inteiros e 2 para números de ponto flutuante.
Na imagem abaixo temos os tipos e sua abrangência:
Como funciona a JVM [Java Virtual Machine]
Como todos que já tiveram o contato básico com a linguagem de programação Java ou pelo menos ouviu falar dela, sabe da capacidade dela de ser multi-plataforma, podendo executar o mesmo aplicativo desde os computadores até mesmo alguns simples celulares.
E uma das peças chaves para ser multi-plataforma é o JVM (Java Virtual Machine), necessário para executar qualquer aplicação escrita na linguagem de programação Java.
![primitivos java [tipos-primitivos-java]](https://techandetcblog.wordpress.com/wp-content/uploads/2011/02/primitivos-java.png?w=595)