Dúvidas Métodos e DAO

9 respostas
P

Senhores,

Estou criando um sistema simples (para quem sabe) de agenda, que conecta um banco de dados. Deve possuir as classes ContatoDAO, Contato, JDBCConnectionFactory e Teste. A classe do DAO deve possuir os seguintes métodos: Inserir, Apagar e Buscar.
Estou procurando tópicos de classe DAO neste fórum, e me parece que, o que há aqui é um pouco mais avançado.
A minha pergunta é: Eu declaro os métodos da classe DAO normalmente, como em uma classe normal? Ele fará contato com o banco de dados por essa classe?

Eu declararia o método como:

public String Apagar (){ return "Apagar tudo"; }

O que eu deveria colocar para transformar em DAO??

Obrigado!!

9 Respostas

rogelgarcia

DAO é uma classe normal…

Só que contem métodos para fazer a comunicacao com o banco de dados…

Só uma observaçao: os métodos devem ter os nomes inserir, apagar e buscar (com letras minusculas… padrão java)

Gustavokt

Oi, pr?cipe

A idéia básica do DAO é criar uma classe onde todas as suas funcionalidades relativas ao banco seja feitas nele.

O JDBCConnectionFactory provavelmente deve ser responsável por fornecer uma conexão ao banco. O Contato vai servir como a classe que vai guardar os dados para você fazer a persistencia.

No seu método de inserção (no DAO), você teria algo do tipo

public void insert(Contato contato);

Esse método teria a query SQL e você precisaria pegar os dados de contato, e fazer a persistência usando a conexão fornecida pelo JDBCConnectionFactory

P

Acho que entendi o que vocês explicaram.
Vou começar a fazer e depois mostro o código para vocês.

Muito Obrigado!!!

P
O início ficaria assim??
public class contatoDAO {
    ContatoDAO contato DAO = new ContatoDAO();
    Contato contato = new Contato();

    contato.setNome("Bruno");

    contatoDAO.inserir(contato);
}

Eu peguei esse exemplo, estaria certo ou eu devo fazer da maneira que eu fiz anteriormente e coloquei na primeira pergunta??

Obrigado!!!!

Gustavokt

Na verdade, alguém chama o ContatoDAO, neste caso o ContatoBusiness
Dentro desse método, vc cria o pojo (no caso o Contato) e passa para o DAO.

Dentro da implementacao do DAO, provavelmente vc vai ter uma query SQL (já que vc vai usar um JDBCFactory)

public class ContatoBusiness {

    public insert(String nome){
       ContatoDAO contato DAO = new ContatoDAO();
       Contato contato = new Contato();

       contato.setNome(nome);

       contatoDAO.inserir(contato);
   }
}
P

Eu tenho que fazer uma estrutura, dessa abaixo, para cada método: inserir, apagar e buscar??

public insert(String nome){   
       ContatoDAO contato DAO = new ContatoDAO();   
       Contato contato = new Contato();   
  
       contato.setNome(nome);   
  
       contatoDAO.inserir(contato);

Senhores, me desculpem a minha insistência, mas, é que eu sou muito cru em Java, e estou começando a aprender agora. Eu tenho certeza que são dúvidas simples, mas que para mim, ainda é um bicho de 21 cabeças.

Muito Obrigado!!

Gustavokt

Sim, a idéia é parecida para os outros métodos…
É dentro da classe ContatoBusiness, por exemplo, que você pode colocar algumas regras…

Tipo

if(contato.getNacionalidade() == Nacionalidade.BRASIL){
   contato.setEstrangeiro(true);   
}
else{
   contato.setEstrangeiro(false);
}

contatoDao.insert(contato);

O exemplo é meio ruim, mas deu pra entender…

P

Ficaria assim??

public class contatoBusiness {
    public void(String nome){
       ContatoDAO contato DAO= new ContatoDAO();
       Contato contato = new Contato();

       contato.setNome(nome);
            
       contatoDAO.inserir(contato);
       contatoDAO.apagar(contato);
       contatoDAO.buscar(contato);
   }
      public insert (String endereco){
              ContatoDAO contato DAO = new ContatoDAO();
              Contato contato = new Contato();
              
              contato.setEndereco(endereco);
              
              contatoDAO.inserir(contato);
              contatoDAO.apagar(contato);
              contatoDAO.buscar(contato);
   }
      public void(Long codigo){
       ContatoDAO contato = new ContatoDAO();
       Contato contato = new Contato();

       
       contato.setCodigo(codigo);

       contatoDAO.inserir(contato);
       contatoDAO.apagar(contato);
       contatoDAO.buscar(contato);
   }
}

Assim ele fica com erro nas linhas:

ContatoDAO contato = new ContatoDAO();
       Contato contato = new Contato();

Ohhhhhhhhhh, coisa complicada!!!!!rsrsrsrs

Obrigado!!

Gustavokt

Mas você criou as classes Contato e ContatoDAO?
Houve métodos que nem colocou o nome…

E pense: faz sentido você chamar a inserção, remoção e busca no mesmo método?

Talvez o que vc queria fazer é um método que recebe

public insert (String endereco, String nome, Long codigo){
   ContatoDAO contato = new ContatoDAO(endereco, nome, codigo);
   Contato contato = new Contato(); 
   contatoDAO.inserir(contato);
}

passando no construtor vc não precisaria fazer set para todos os atributos

Criado 14 de abril de 2010
Ultima resposta 14 de abr. de 2010
Respostas 9
Participantes 3