Sou principiante em java e estou desenvolvendo um programa que trabalha da seguinte forma:
Uma camada para visão (Meus formulários);
Uma camada para controle (Aonde estão ficando minhas DAO contendo a conexão e sql para o banco).
Uma camada de modelo (Aonde estão ficando minhas entidades cliente… set, get).
Minha dúvida é a seguinte, estou conseguindo salvar minhas informações tranquilamente, mandando da camada “visão” para a “controle”, porem, não sei como buscar essas informações e retornar para meu formulário, gostaria se possivel que vocês pudessem dar um exemplo com base no exemplo abaixo.
// Camada visão mandando para controle
if(tfNome.getText().equals("") || tfendereco.getText().equals("")) {
JOptionPane.showMessageDialog(null, "O campo 'Nome' e o campo 'Endereço' deverão ser preenchidos obrigatoriamente!");
}
else {
DadosIgreja igreja = new DadosIgreja();
igreja.setNome(tfNome.getText());
igreja.setEndereco(tfendereco.getText());
try {
CadastrarDadosIgrejaDAO igre = new CadastrarDadosIgrejaDAO();
igre.salvar(igreja);
} catch (SQLException ex) {
Logger.getLogger(CadastrarUsuario.class.getName()).log(Level.SEVERE, null, ex);
}
}
// Camada controle que salva no banco
public void salvar(DadosIgreja igreja) {
String sql = "insert into Igreja (id, nome, endereco) values (?,?,?);
try (PreparedStatement stmt = connection.prepareStatement(sql)){
stmt.setInt(1, igreja.getId());
stmt.setString(2,igreja.getNome());
stmt.setString(3,igreja.getEndereco());
stmt.execute();
// stmt.close(); //e fecha a conexão ao bd
JOptionPane.showMessageDialog(null,"Cadastro realizado com sucesso!!!");
connection.close();
}
catch(SQLException ex) {
JOptionPane.showMessageDialog(null,"Não foi possível adicionar os dados no banco\n" + ex);
}
Gostaria de saber como buscar esses dados do meu banco após salva-lo. Ouvi dizer para usar uma LIST, porem não sei na prática como fazer isso e também em que camada a utilizaria. Desde já agradeço a contribuição de todos.
Você teria que que ter no minimo mais 2 metodos além do salvar.
Método pesquisar (ou como preferir chamar), onde ele buscará todos os dados da tabela em questão, poderá receber parametros para a pesquisa ou não, vai executar nada mais do que um select.
Método get (ou como preferir chamar), irá receber a PK do objeto que deseja buscar no banco.
Esse outro método não tem haver com o que você perguntou, mas poderia criar também um remover, que recebe a pk do objeto que deseja deletar.
E também poderia criar o método de atualizar, recebe o objeto inteiro e atualiza todos os dados dele, menos a PK.
Boa tarde galera, então, primeiro gostaria de agradecer a todos que me responderam até o momento, as explicações tem sido boas e tem me ajudado a compreender mais e
mais, porem, ainda estou com dúvidas sobre o seguinte, estou criando na minha classe DAO os metodos “Pesquisar” que pesquisará os dados no banco e me retornará e
o metodo “MostrarDados” q eu kero q exiba o dado contido no BD, fiz conforme o Jeffev e também o Enadrov me falaram, porem,
eu ainda não consigo entender como vou exibir essas informações contidas nesse metodo “MostrarDados” na minha camada de visao (form), eu keria um exemplo exatamente sobre isso, q é aonde eu tenho tido uma maior dificuldade, tipo, como q eu faço para preencher meu tfNome e tfEndereco conforme o exemplo passado anteriormente?
Tenho me confundido um pouco acho q ate por causa dessa questao das camadas, antigamente, eu conseguia pegar as informações atraves de um resultset pela propria
camada de visao, mas me falaram q nessa camada n devo buscar nada no banco, então tenho ficado meio confuso quanto a isso, agradeço desde já por qualquer auxilio.
Abraço a todos.
Vc esta usando JSP? Se sim, vc pode fazer de varias formas, um delas é sua DAO vc criar uma lista do tipo do retorno do seu método, cries os get e set…no get da sua lista passe o método que retorna os dados do DB, aí é só chamar a lista na sua JSP.
//Classe DAO
//....nome da classe e bla bla bla
private List<Contato> listaContatos;
public List<Contato> getListaContatos() {
return listaContatos = listar(); // aqui vc chama o seu método que retorna dados do DB
}
//.... seus metodos.....
Gostaria de agradecer ao freakazoid, sua resposta me ajudou e realmente consegui exibir as informações contidas no BD na minha camada de visão agora, agradeço tbm a todos que se dispuseram pra estar ajudando.
Um abraço a todos!!!
Estou usando exatamente essa apostila para meus estudos, rs, é realmente um material muito bom esse da Caelum, só q estou desenvolvendo um programa a principio pra Desktop e trabalhando com DAO, o qual aprendi lendo essa apostila.
Surgindo as dúvidas volto a postar aos amigos, abraços!!!