AJuda com consulta em DAO

6 respostas
skekeu

Fala galera,

To precisando de uma ajudinha aki>

seguinte:
Quero fazer uma busca no banco de dados.
Pra isso fiz uma jsp com os campos Consulta e Parametro (com o respectivo JavaBean) para que o usuario possa escolher se quer buscar por nome, cpf e tal...

Acontece q só ta fazendo a busca com o campo de busca vazio, caso eu insira um nome ou qualquer coisa pra pesquisa ele não retorna nada

segui os codigos:

JSP
<form name="f_consulta" action="conclui_consulta.jsp" method="POST">
      
  <br>    
      Pesquisar  <input type="text" name="consulta" value="" size="20" />   
          <select name="parametro" id="parametro">
              <option value="nome">Nome</option>
              <option value="bairro">Bairro</option>
              <option value="mes">Mês de aniversário</option>
              <option value="tel">Telefone</option>
              <option value="email">Email</option>
          </select>
          <input type="submit" value="Pesquisar" />
  <br>    
  
  </form>
Método
public void consulta(Consultar co, JspWriter out)throws Exception{
open();
stmt = con.prepareStatement("SELECT * FROM membro WHERE ? LIKE ?");
stmt.setString(1, co.getParametro());
stmt.setString(2,"%" + co.getConsulta() + "%");
ResultSet rs = stmt.executeQuery();
while(rs.next()){
out.print("<br><b>Nome completo:</b> " + rs.getString("nome"));
out.print("<br><br><b>Endereço:</b> " + rs.getString("endereco"));
out.print("<br><br><b>Bairro:</b> " + rs.getString("bairro"));
out.print("<br><br><b>CEP:</b> " + rs.getString("cep"));
out.print("<br><br><b>Naturalidade:</b> " + rs.getString("nat"));
out.print("<br><br><b>Telefone:</b> " + rs.getString("tel"));
out.print("<br><br><b>Email:</b> " + rs.getString("email"));
out.print("<br><br><b>Data de nascimento:</b> " + rs.getInt("dia") + "/" + rs.getInt("mes") + "/" + rs.getInt("ano"));
out.print("<br><Hr>");
}

}
Retorno
try{      

     Consultar co = new Consultar();
     co.setParametro(request.getParameter("parametro"));
     co.setConsulta(request.getParameter("consulta"));
     
     MembroDao md = new MembroDao();
     md.consulta(co,out);
     
    
     
  
  
  }catch(Exception e){
  out.print("<br>Ocorreu um erro durante a consulta: " + e.getMessage()+"<br><br>");
  } 
  %>

Agradeço desde já a ajuda :wink:

6 Respostas

P

uso mais Oracle mas pelo codigo que vi o uso do like é entre ‘’

por exemplo

select * from cliente where nome like '%Lula%'

pode ser isso faz um teste usando isso fora do java na ferramenta do banco que você está usando e ve o resultado

abs

skekeu

é…
quando faço esse comando no mysql funciona…

mas na classe não funciona de jeito nenhum…

nesse codigo que fiz a um mes funciona: :shock:

public void consulta_cliente() throws Exception{ abreBanco(); System.out.println("Informe o nome a ser consultado"); consulta = in.nextLine(); System.out.println("************************************"); System.out.println("RESULTADO DA CONSULTA:"); System.out.println("************************************"); stmt = con.prepareStatement("SELECT * FROM cliente WHERE nome LIKE ?"); stmt.setString(1,consulta + "%"); ResultSet rs = stmt.executeQuery(); while (rs.next()){ System.out.println("Conta: " + rs.getString("conta_sistema")); System.out.println("Cliente: " + rs.getString("nome")); System.out.println("Endereço: " + rs.getString("endereco")); System.out.println("Telefone: " + rs.getString("tel")); System.out.println("Email: " + rs.getString("email")); System.out.println("Saldo atual: " +nf.format(rs.getDouble("saldo_sistema"))); System.out.println("************************************"); } fechaBanco(); }

J
Consultar co = new Consultar();   
 co.setParametro(request.getParameter("parametro"));   
 co.setConsulta(request.getParameter("consulta"));   
   
 MembroDao md = new MembroDao();   
 md.consulta(co,out);

Vc reparou se o getParameter está recuperando mesmo a informacao?
E no retorno do DAO trouxe alguma infoo ?

Pedrosa

Se esta fazendo uma pesquisa torne o campo obrigatório e assegure que ele realmente está chegando preenchido.

skekeu

O campo consulta tem preenchimento obrigatorio (fiz uma rotina javascript)

e todos os campos do banco estão preenchidos tbm exceto email

skekeu
<blockquote><div class="quote-author">JAVA DIGAO:</div>     Consultar co = new Consultar();

co.setParametro(request.getParameter(“parametro”));

co.setConsulta(request.getParameter(“consulta”));
MembroDao md = new MembroDao();   
 md.consulta(co,out);

Vc reparou se o getParameter está recuperando mesmo a informacao?
E no retorno do DAO trouxe alguma infoo ?

Pelo que vejo no código(sou iniciante), o getParameter esta recuperando os campos do formulário.
Então deveria estar funcionando… :x

Criado 18 de março de 2009
Ultima resposta 18 de mar. de 2009
Respostas 6
Participantes 4