Estou fazendo um programa pra cadastrar clientes, consegui salvar os clientes junto com suas informações (CPF, RG, ENDEREÇO…) no banco postgresql, mas estou com problemas na hora de fazer uma busca, o usuario vai digitar o nome, e vai fazer uma busca no banco pra achar aquele nome e suas informações, fiz pelo modelo dao (o modelo que eu fiz esta certo) mas eu não sei como chamar aqueles dados em uma jsp, para depois mostrar na tela (é uma aplicação pra web)…
Está no lugar correto, embora possa ser uma dúvida referente à desenvolvimento web.
Bem, se você fez seguindo o pattern DAO, deve ter um método, dentro da classe DAO, que faça o select.
Este select pode receber parâmetros (nome, id, etc). Sendo assim
public class MinhaDAO{
public Cliente meuMetodo(String nome){
String sql = "SELECT * FROM tabela WHERE nome LIKE '%?%';
PreparedStatement ps = con.prepareStatement(sql);
ps.setString(1, nome);
ps.execute();
ResultSet rs = ps.getResultSet();
Cliente cli = new Cliente();
while(rs.next()){
cli.nome = rs.getString("nome");
cli.id = rs.getInt("id");
//assim por diante
}
return cli;
}
}
Se está usando jsp, acho que esteja chamando este método de uma servlet
//aqui codigo
MinhaDAO minha = new MinhaDAO();
//chama a inicialização, criação da conexão
String nome = request.getParameter("nome");
Cliente cli = minha.meuMetod(nome);
request.setAttribute("cliente", cli);
response.sendRedirect("minhajsp.jsp");
Na jsp, você pode usar EL, JSTL ou, menos recomendado, mais feio e menos elegante, scriptlet…
No exemplo passado pelo drsmachado o like é um coringa no banco de dados , no exemplo a busca seria por nome portanto o like efetuará uma busca tal como select nome from tabela where nome like ‘%alek%’ neste caso o retorno será todos os nomes que contenham as letras alek contida em linhas da tabela nome…entendeu … para sanar suas dúvidas aconselho sempre efetuar um teste no próprio banco de dados …no seu caso o postgres tem o pgadmin que é muito bom …boa sorte …
Esta dando erro, olha como esta o meu codigo (a parte do dao)
[code] public List retrieve() throws SQLException {
String comando = “”;
try {
Statement stmt = conexao.createStatement();
comando = "select * from cadastro WHERE nome LIKE ‘%nome%’ ";
ResultSet rs = stmt.executeQuery(comando);
List listaDeCadastros = new ArrayList();// lista de cadastros
while (rs.next()) {
Cadastro cadastro = new Cadastro ();
cadastro.setNome (rs.getString(1));
cadastro.setApelido (rs.getString(2));
cadastro.setEmail (rs.getString(3));
cadastro.setCpf(rs.getString(4));
cadastro.setNasc(rs.getString (5));
cadastro.setTel(rs.getString(6));
não sei se vale a pena citar, que eu fiquei com uma duvida, quando o usuario digita o nome do cliente o programa armazena a informação do nome numa variavel que se chama “dado” (sem aspas)…
outra duvida, como eu chamo esses dados na jsp? depois de tudo