Codigos Fonte, Artigos e Dicas
JEE(2/2)Testando o seu projeto JPA com Eclipse e PostgreSQL

Voltando a postar… vamos agora testar os códigos gerados no post anterior…
Com a classe Pessoa nas mãos vamos testar…
Vamos criar um pacote separado… pode ser br.meujpa.persistence
package br.meujpa.persistence; import java.util.List; import javax.persistence.EntityManager; import javax.persistence.EntityManagerFactory; import javax.persistence.EntityTransaction; import javax.persistence.Persistence; import br.ucam.model.Pessoa; public class Cadastra { private Pessoa pessoa; //nosso salvador... EntityManagerFactory emf = Persistence.createEntityManagerFactory("TrabalhoJPA"); //nosso salvador 2... EntityManager em = emf.createEntityManager(); //tem q ter por padrao... public Cadastra(){} /* esse amigao aki vai salvar os objetos no banco com muita simplicidade e humildade, ele nao tem parametros, pois quando formos usa-lo no nosso projeto JPA, vamos usar Cadastro.pessoa, logo teremos uma pessoa no nosso objeto pessoa, e vamos precisar apenas chamar salvar para que ele se torne parte do nosso banco de dados. */ public String salvar(){ try { if((!pessoa.getOid().equals(""))){ //o entity manager é o cara que tem o papel de organizar as requisições ao banco //ou seja ele cuida do trafego no banco //ou seja seja bonzinho senão vc nao ganha presente no natal... EntityTransaction trans = em.getTransaction(); trans.begin(); em.persist(pessoa); trans.commit(); pessoa = new Pessoa(); pessoa.setOid(this.gerarId()); return "sucesso"; } } catch (Exception e) { e.printStackTrace(); } return "fail"; } //mesma coisa serve para o excluir public void excluir(){ if(pessoa!=null){ Pessoa m = em.find(Pessoa.class, this.pessoa.getOid()); EntityTransaction trans = em.getTransaction(); trans.begin(); em.remove(m); trans.commit(); } } //quando colocarmos pra rodar o jsf, vamos te o botao novo //esse botao se encarregara de chamar esse metodo public String novo() { pessoa = new Pessoa(); pessoa.setOid(this.gerarId()); return "novo"; } public Pessoa getPessoa() { return pessoa; } public void setPessoa(Pessoa pessoa) { this.pessoa = pessoa; } //lista pesoas ordenando por nome @SuppressWarnings("unchecked") public List<Pessoa> getListPessoas() { return em.createQuery("from Pessoa order by nome").getResultList(); } //ainda nao sei pegar automaticamente aiushiaush logo se alguem souber //por favor me passe que será de grande valia aiushiaushias //se for falar mau tbm sera bem vindo, se vier com uma ideia melhor q essa aki iuahsui public int gerarId(){ try{ return Integer.parseInt(em.createQuery("select max(oid) from Pessoa").getSingleResult().toString())+1; }catch (Exception e) { return 1; } } } }Classe Persisty (apenas para teste):
public class Persisty { public void persiste(){ try{ Pessoa p = new Pessoa(); p.setOid(4); p.setNome("Paulo Diogo, Screp"); p.setSexo("M"); p.setCpf("XXX.XXX.XXX-XX"); p.setIdentidade("999999999"); p.setDtNasc("15/12/1987"); Cadastra c = new Cadastra(); c.setPessoa(p); c.salvar(); }finally{ System.out.println("OK!"); } } }Colocando pra rodar:
vamos criar uma nova classe denominada AppTeste:
package br.meujpa.persistence; public class AplicacaoTeste { /** * @param args */ public static void main(String[] args) { Persisty p = new Persisty(); p.persiste(); } }Simples assim...
Nenhum post foi relacionado a este
| Imprimir artigo | Este artigo foi escrito por paulodiogo em 10 10UTC dezembro 10UTC 2009 às 11:23, e está arquivado em Outros. Siga quaisquer respostas a este artigo através do RSS 2.0. Você pode deixar uma resposta ou fazer um trackback do seu próprio site. |

há 2 anos atrás
Olá novamente!!!
vi que na classe “AplicacaoTeste”, na linha 9, tem isso aqui: Persisty p = new Persisty();
pergunto eu… de onde vem esse Persisty?
e mais um detalhe… ainda não vou precisar de libs do hibernate?
abraço!
[Reply]
Paulo Diogo Reply:
janeiro 19th, 2010 at 8:10
Os arquivos do hibernate ja vem com o JBoos. essa classe persisty apenas tem um metodo persiste(), onde vc vai instanciar uma pessoa e logo apos vai salva-la. vou colocar o exemplo pra vc aki, deixa eu arrumar meu note aki. =D
[Reply]