Vai encarar?

Na boa, isso merece um post

Deixe um comentário

Filed under Doidera

JPA2 -> CRUD + Generics [Parte 1]

Versão do Post[1.5]


Opa galera, tudo certo?
Bem.. vou fazer um CRUD basico com JPA2, ando estudando bastante sobre JPA2 e sinceramente.. gostei mais de brincar com ele do que o Hibernate em si (sei-la.. achei mais divertido), bem vamos la
Primeiro passo: Criar o JPAUtil no pacote br.com.lafleur.faroljava.infra

package br.com.lafleur.faroljava.infra

import javax.persistence.EntityManager
import javax.persistence.EntityManagerFactory
import javax.persistence.Persistence

public class JPAUtil{
   private static EntityManagerFactory entityManagerFactory = Persistence.CreateEntityManagerFactory("controledecontas");
   public EntityManager getEntityManager(){
      return entityManagerFactory.createEntityManager();
   }
}

Agora precisamos criar nosso DAO Generico

package br.com.lafleur.faroljava.DAO

import javax.persistence.EntityManager;
import java.util.List;

public class DAO<T>{
   private final EntityManager em;
   private final Class<T> classe;

   public DAO(EntityManager em, Class<T> classe){
      this.em = em;
      this.classe = classe;
   }
   //Metodos de CRUD genericos

   public T busca(Integer id){
      return this.em.getReference(classe, id);
   }

   public List<T> lista(){
      return em.createQuery("from " + classe.getName()).getResultLit();
   }

   public void adiciona(T t){
      this.em.persist(t);
   }

   public void remove(T t){
      this.em.remove(t);
   }
}

Beleza, ja temos o JPAUtil e o DAO generico, no nosso pequeno projeto, vamos criar uma Conta, mas quais atributos uma conta normalmente tem ? Um titular, uma agencia, um numero e um banco.. coisas basicas por enquanto ^^.
Precisamos então criar nossa entitdade conta

package br.com.lafleur.faroljava.modelo

import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;

@Entity
public class Conta{
   @GeneratedValue @Id
   private Integer id;
   private String titular;
   private String agencia;
   private String numero;
   private String banco;

   //Getters and Setters
}

E nossa ContaDAO no pacote br.com.lafleur.faroljava.dao

package br.com.lafleur.faroljava.dao.Conta

import javax.persistence.EntityManager;
import java.util.List;
import br.com.lafleur.faroljava.modelo.Conta;

public class ContaDAO{
   private final DAO<Conta> dao;
   private final EntityManager em;

  public ContaDAO(EntityManager em({
     this.dao = new DAO<Conta>(em, Conta.class);
     this.em = em;
   }

   public void adiciona(Conta conta){
      this.dao.adiciona(conta);
   }

   public void remove(Conta conta){
      this.dao.remove(conta);
   }

   public List<Conta> lista(){
      return this.dao.lista();
   }

   public Conta busca(Integer id){
      return dao.busca(id);
   }
}

Pra finalizar agente precisa ainda de duas coisas basicas, primeira, a nossa classe de testes
e segundo nosso persistence.xml, o persistence.xml seria a mesma coisa que o hibernate.cfg.xml.
Criando o persistence.xml: O “diferente” do persistence.xml é que ele ao inves de ficar na pasta src como o hibernate.cfg ele fica na META-INF dentro de src.
Beleza, vamos criar o persistence.xml

<pre><persistence xmlns="http://java.sun.com/xml/ns/persistence"
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd"
 version="2.0">
// Passamos o persistence-unit no EntityManagerFactory do JPAUtil
 <persistence-unit name="controledecontas">
 <provider>org.hibernate.ejb.HibernatePersistence</provider>

 <class>br.com.lafleur.faroljava.modelo.Conta</class>

 <properties>
 <property name="hibernate.dialect" value="org.hibernate.dialect.MySQLInnoDBDialect" />
 <property name="hibernate.hbm2ddl.auto" value="update" />
 <property name="hibernate.show_sql" value="true" />
 <property name="hibernate.format_sql" value="true" />

 <property name="javax.persistence.jdbc.driver" value="com.mysql.jdbc.Driver" />
 <property name="javax.persistence.jdbc.url" value="jdbc:mysql://localhost/Faroljava" />
 <property name="javax.persistence.jdbc.user" value="root" />
 <property name="javax.persistence.jdbc.password" value="UseSeuPassword" />
 </properties>

 </persistence-unit>
</persistence>

Pronto nosso persistence.xml foi criado dentro de META-INF da pasta src.

E nossa ContaDAO no pacote br.com.lafleur.faroljava.dao
Não esquecam de criar um FOLDER dentro do src e nomea-lo META-INF

package br.com.lafleur.faroljava.teste;
import javax.persistence.EntityManager;
import br.com.lafleur.faroljava.dao.ContaDAO;
import br.com.lafleur.faroljava.infra.JPAUtil;
import br.com.lafleur.faroljava.modelo.Conta;

public class InsereContaTestDriver{
   public static void main(String arg[]){
   EntityManager em = new JPAUtil().getEntityManager();
   ContaDAO dao = new ContaDAO(em);

   Conta c = new Conta();
   c.setAgencia("Itau");
   c.setBanco("Itau");
   c.setNumero("7777-7");
   c.setTitular("Max Mustang");
   c.setBanco("7777");
   em.getTransaction().begin();
   dao.adiciona(c);
   em.getTransaction().commit();
   }
}

Pronto,  ja temos um insert com JPA2, para os proximos post vamos implementar os outros metodos o/

Jesus Love you ❤

3 comentários

Filed under Hibernate, Java, JPA2, OpenSource

Aprendendo Java com o Bope

Maneirão o/

Deixe um comentário

Filed under Doidera, Java

Falta de Tempo + Cansaço + Trabalho = FAIL

Bem galera, essa soma ai explica(bem sem vergonha xD) a falta de posts, mas prometo em breve trazer mais posts sobre JSF Hibernate/JPA e Java em geral. Nesse periodo que estou estagiando na onBudget eu realmente consegui botar em pratica grande parte das coisas que aprendi, e com certeza aprendi bastante também, ja usei JSF, Hibernate, JDBC, JSTL, JavaScript, JSP/Servlet e Jquery, pena que ainda não consegui utilizar o VRaptor 3, mas com meus estudos sobre REST (livro do Sam Ruby e Leonard Richardson – Restful Web Services indicado pelo Guilherme Silveira)  vou conseguir usar o VRaptor e REST.
Falando em VRaptor isso me lembra que dia 31/7(é esse sabado agora) vou começar o FJ25 na Caelum RJ – Botafogo, to muito feliz com isso,
a bastante tempo venho estudando e me interessando por Hibernate/JPA, e logo após o termino do FJ25, iniciarei o FJ26(talvez o curso mais importante pra mim)que vai começar dia 28/8 na Caelum RJ – Centro.

Após o termino dos cursos espero aumentar também a qualidade dos posts, ah ah, não posso esquecer de mandar um BRIGADÃO pra Amanda Lopes

Vlw galera
Até o/
jesus love u

Deixe um comentário

Filed under Carreira, Hibernate, Java, OpenSource

Video Java 4-Ever

Opa, fala galera beleza? To meio sumido por causa do trabalho e da faculdade[Ferias até que enfim]
Vou tentar colocar pelomenos dois posts que já estão prontos nos próximos dias, mas por enquanto, vou postar esse video que eu vi no GUJ
depois no blog do serjaum. Não sei se vai realmente sair esse filme, mas se sair.. com certeza eu estarei lá

Atualização:
Bem o primeiro filme estava com a legenda em ingles, então pra quem nao saca bem de ingles ta ae agora em pt-br

postado pelo @emguerra no twitter

Deixe um comentário

Filed under Java, OpenSource

Ano novo, vida nova, emprego novo

Opa, galera, beleza??
Não tem como eu expressar minha felicidade hoje, finalmente troquei de emprego. Apartir de quarta, estarei trabalhando na Onbudget, consegui esse emprego, através da indicação de um amigo da faculdade, o Victor Mendes.
Gostaria de agradecer neste post, as pessoas que me ajudaram e que me apoiaram.
Então aqui vai meu agradecimento mais que especial a DEUS que sem ele não sou nada(Evangelico Protestante SIM), meu pai que me iniciou com progamação(.net) e que sempre me cobrou muito, até porque filho de desenvolvedor, desenvolvedor é ; minha mãe que me apoiou acima de tudo, meus amigos amigos mesmo, Vitu, Wallace, Juliana, Leticia, Elder, Hudson, Erickson, Raty, Sapo, Phil, Pastor Marcio e toda Ass. de Deus Esmirna(IADE), são tantos amigos, que se eu fosse escrever aqui.. ia tomar um bom tempo, ao Filipe Sabella, Leo Bessa, Alayne, Gilliard e o Veloso, são todos acima de professores, amigos que me ajudaram muito muito mesmo, desde de Java e Orientação a Objeto, a JSF e Hibernate, a Caelum que me deixou tarado por Java, ao Victor Mendes que me indicou à Onbudget, e tambem a Onbudget pela oportunidade

vlw o/

3 comentários

Filed under Carreira, Java, OpenSource