Idéia de um pool de conexões, se isso é necessário mesmo

Java

27/04/2011

Preciso criar uma classe genérica para gravar,alterar e excluir, um CRUD mas que atenda todo o meu projeto. Ou seja, se eu estou com o form de cadastro eu pego a conexão e qualquer alteração,excklusão ou inserção, deverá ser feito na tabela de cadastro. Não sei se estou sendo claro. Gostaria de uma idéia para isso.
Pjava

Pjava

Curtidas 0

Respostas

Davi Costa

Davi Costa

27/04/2011

Cara vc vai ter que pesquisar sobre generics em java.

Se vc usar JPA beleza que todas suas classes mapeadas vão ser Entity. Então na sua classe genérica basta vc colocar:

public class GenericCrudService<Entity>......


E nessa classe já ter implementado o crud completo ... exemplo de um método:

    public final Entity insert(Entity obj) {
        entityManager.persist(obj);
        return obj;
    }

Daí qdo vc precisar que algum serviço de alguma classe sua como Cliente por exemplo, basta criar sua classe extendendo dessa classe genérica:

public class CleinteServiceImpl extends GenericCrudService<Cliente>... e por herança já vai pegar todos os métodos  da sua classe genérica.


Se vc não usa JPA, suas classes do modelo, vc estende ela de alguma classe mais genérica q possua pelo menos um id.. nem q seja um  um Object esse id, pq se sua chave primária não for um Long ou Integer iria funcionar com String tb e ai na sua classe genérica do crud vc alteraria Entity por essa classe q todas as classes do modelo estendem dela....lembrando nesse caso se vc não usar JPA(ou sua implementações Hibernate , TopLink e por ai vai).

Att Davi
GOSTEI 0
Davi Costa

Davi Costa

27/04/2011

Só complementando. artigo de Generics aqui da devmedia:
https://www.devmedia.com.br/post-18757-Desmistificando-a-Certificacao-SCJP6-Parte-II.html

Att Davi

GOSTEI 0
Pjava

Pjava

27/04/2011

Genericos eu tenho estudado bem e conheço bem, até porque sempre trampei com Delphi e Delphi 2011 se usa muito esse conceit. Só queria saber se o caminho é esse mesmo. Eu usarei nesse projeto JPA sim.
GOSTEI 0
Davi Costa

Davi Costa

27/04/2011

Show de bola cara.

Então qualquer dúvidar mais pontual é só chamar.

Att Davi
GOSTEI 0
Pjava

Pjava

27/04/2011

Só uma pergunta: Eu uso Helios com JSF 2.0, e Hibernate/JPA. Em realidade ainda não coloquei nada do Hibernate em meu projeto. É necessário criar o Hibernate.cfg.xml? Preciso criar na mão esse arquivo ou o Helios faz isso, já que como me disseram, ele já implementa o Hibernate. Ainda não testei gravar em banco ou algo parecido, vou começar a fazer isso amanhã. Esse é meu início na ferra e estou meio apreensivo.
GOSTEI 0
Robson Teixeira

Robson Teixeira

27/04/2011

Olá
  quando você usa JPA não necessita de criar hibernate.cfg.xml basta criar o persistence.xml e só e somente ele ser o seu projeto for JPA project o eclipse cria automaticamente caso contrario deverá criar na mão ou da 1 busca sobre hibernateTools.
 
qualquer coisa e so chamar
att
 robson Passarella
GOSTEI 0
Pjava

Pjava

27/04/2011

Uma pergunta. Se eu na hora de criar o Hibernate.cfg eu renomear para Persistence.xml, isso é aceitável? Porque o cfg.xml eu consigo gerar no Eclipse, logo se eu renomear terei o arquivo Persistence.xml já pronto, com o cabeçalho já criado e etc..., pois pelo que eu vi é semelhante ao cfg.xml.
GOSTEI 0
Davi Costa

Davi Costa

27/04/2011

É melhor vc dar uma olhada no google e pegar algum exemplo.
Não tem o mesmo conteúdo não.


Att Davi
GOSTEI 0
Robson Teixeira

Robson Teixeira

27/04/2011

Não necessariamente pois as algumas tags no xml são diferentes segue 1 modelo de persistence.xml para você ver as diferenças.  <persistence version="2.0" 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">   <persistence-unit name="GameNetPU" transaction-type="JTA">
    <provider>org.eclipse.persistence.jpa.PersistenceProvider</provider>
    <class>br.com.games.GameNet.entity.Aparelho</class>
    <class>br.com.games.GameNet.entity.Cliente</class>
    <class>br.com.games.GameNet.entity.Funcionario</class>
    <class>br.com.games.GameNet.entity.Genero</class>
    <class>br.com.games.GameNet.entity.Item</class>
    <class>br.com.games.GameNet.entity.ItemVenda</class>
    <class>br.com.games.GameNet.entity.Jogo</class>
    <class>br.com.games.GameNet.entity.Pessoa</class>
    <class>br.com.games.GameNet.entity.Venda</class>
    <exclude-unlisted-classes>true</exclude-unlisted-classes>
    <validation-mode>NONE</validation-mode>
    <properties>  <property name="javax.persistence.jdbc.url" value="jdbc:postgresql://localhost:5432/gamenet"/>
      <property name="javax.persistence.jdbc.password" value=""/>
      <property name="javax.persistence.jdbc.driver" value="org.postgresql.Driver"/>
      <property name="javax.persistence.jdbc.user" value="postgres"/>
      <property name="eclipselink.logging.level" value="FINE"/>
    </properties>
  </persistence-unit>
</persistence>     O hibernate tem implementação JPA e no xml tem que seguir a especificação JPA .   Esse modelo trabalha com o eclipseLink que é outro framework orm.      
GOSTEI 0
Robson Teixeira

Robson Teixeira

27/04/2011

desculpe deu 1 erro aqui na maquina. mas sim pesquise um pouco sobre JPA e ja que deseja usar o hibernate procure exemplos de modelo do persistence.xml usando hibernate.      qualquer coisa e so chamar att  robson  
GOSTEI 0
POSTAR