Dúvidas Métodos e DAO

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!!

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)

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

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

Muito Obrigado!!!

O início ficaria assim??

[code]public class contatoDAO {
ContatoDAO contato DAO = new ContatoDAO();
Contato contato = new Contato();

contato.setNome("Bruno");

contatoDAO.inserir(contato);

}[/code]

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

Obrigado!!!

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);
   }
}  

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

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

   contato.setNome(nome);   

   contatoDAO.inserir(contato);   [/code]

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!!

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…

Ficaria assim??

[code]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);

}
}[/code]

Assim ele fica com erro nas linhas:

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

Ohhhhhhhhhh, coisa complicada!!!rsrsrsrs

Obrigado!!

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