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