Consulta javaweb com comando 'like'

6 respostas
scmarcia

Oi pessoal,
Estou tentando criar uma pagina de consulta usando comando like na SQL , mas até onde fiz, nada acontece…

Criei o seguinte metodo na classe AlunoDAO:

public List<Aluno> pesquisa(String nome)throws Exception{
  OpenDatabase()
  String SQL= "SELECT * FROM tbaluno WHERE `NOME_ALUNO` LIKE ?";
  pstmt= con.prepareStatement(SQL);
  pstmt.setString(1,"%"+nome+"%");
  rs= pstmt.executeQuery();
  Aluno a= null;
  List<Aluno> ListaPesquisa= new ArrayList<Aluno>();
        
  while (rs.next()){
           a.setCOD_ALUNO(rs.getInt("COD_ALUNO"));
           a.setCOD_CURSO(rs.getInt("COD_CURSO"));
           a.setNOME_ALUNO(rs.getString("NOME_ALUNO"));
           a.setIDADE_ALUNO(rs.getInt("IDADE_ALUNO"));
           a.setCIDADE(rs.getString ("CIDADE"));
           a.setEMAIL(rs.getString("EMAIL"));    
  }
               
        return ListaPesquisa ;
}

e na pagina jsp da consulta, fiz o seguinte:

<h1><center>Consulta de Alunos</center></h1>
<br />
<br />
<label for="nome">Nome a ser pesquisado :</label><br />
<input type="text" name="nome" value=""  onkeypress="return teste_letras()"/><br />
        <center>
        <table width="70%" border="1">
            <tr>
                <td>Código do Aluno</td>
                <td>Código do Curso</td>
                <td>Nome do Aluno</td>
                <td>Idade</td>
                <td>Cidade</td>
                <td>E-mail</td>
            </tr>
<%
try{
    AlunoDAO ad= new AlunoDAO();
    String no_pesquisa= request.getParameter("%"+"nome"+"%");
    List<Aluno> Lista= ad.pesquisa("%"+no_pesquisa+"%");
    for (Aluno a: Lista){
%>
            <tr> 
                <td> <%= a.getCOD_ALUNO() %></td>
                <td> <%= a.getCOD_CURSO() %> </td>
                <td> <%= a.getNOME_ALUNO()  %> </td>
                <td> <%= a.getIDADE_ALUNO()  %> </td>
                <td> <%= a.getCIDADE()  %> </td>
                <td> <%= a.getEMAIL()  %> </td>
           </tr>
           </table><br/>
           </center>  
                <br />
                <br />
<%
}
%>
             
<%
}
catch(Exception e){
    out.print("erro na pesquisa, consulta. jsp");
}
%>       
<input type="submit" value="Voltar" onclick="window.open('index.jsp','','');window.close()"/>

Nada acontece…se alguém puder me ajudar!!
Grata!!

6 Respostas

CyberX

Try this:

String SQL= "SELECT * FROM tbaluno WHERE `NOME_ALUNO` LIKE '%"+ nome + "%'";  
  pstmt= con.prepareStatement(SQL);  
  rs= pstmt.executeQuery();

Flus.

lele_vader

Não precisa de um form action aí não ?

Mesmo que aponte para a mesma página para depois entrar no código do scriplet.

scmarcia

Amigo…pior que nao deu certo…

Acho que o erro está na pagina .jsp

Já fiz isso em delphi, e lá eu coloquei todo o código de pesquisa no evento onkeyPress do Edit…

Será que neste caso eu vou ter que colocar este código no Evento OnKeyPress do input??Mas como faria isso, no java Script? Tem alguma ideia??

Muito obridaga!!

lele_vader

Entra no método de pesquisa ou não ?

Dá um erro específico ?

Coloque o stack trace por favor se acontecer

CyberX

Cria um main e faça o teste, dessa forma fica mais fácil de saber se deu certo ou não

Flus.

N

while (rs.next()){ a.setCOD_ALUNO(rs.getInt("COD_ALUNO")); a.setCOD_CURSO(rs.getInt("COD_CURSO")); a.setNOME_ALUNO(rs.getString("NOME_ALUNO")); a.setIDADE_ALUNO(rs.getInt("IDADE_ALUNO")); a.setCIDADE(rs.getString ("CIDADE")); a.setEMAIL(rs.getString("EMAIL")); }

Como é uma lista faltou a linha dentro do seu while ListaPesquisa.add(a);

Voce precisa ter um em seu JSP de pesquisa.

Criado 10 de maio de 2012
Ultima resposta 10 de mai. de 2012
Respostas 6
Participantes 4