Como saber se a pesquisa do banco de dados e falsa?

6 respostas
R

E ai galera,

estou fazendo executando um select,

onde rs recebe o valor do resultado da pesquisa, só que quando ele não encontrar eu queria que ele mostar uma mensagem, o problema que não encontrando ele mostra valores da primeira linha: entrando no if
Ai vai um pedaço do código

String sql="select ......";

rs = st.executeQuery(sql);   

if (rs != null)
{
   //mostra a pesquisa
}
else
{
   exibe não encontrei
}

pensei que daria certo dessa maneira quem tiver uma idéia, já agradeço

6 Respostas

Daniel_Quirino_Olive
if(rs.next()){
 // faz alguma coisa...
}else
 // nao achou nada...
}
dgouvea

estou tendo um problema parecido com este.

eu tenho em uma classe um método que faz uma pesquisa no banco e me retorna uma string;

quando eu executo esta classe e mando dar um System.out.println() no método ele me traz o resultado normalmente.

quando eu chamo o mesmo método de um servlet, durante a pesquisa o ResultSet retorna null, a pesquisa é exatamente a mesma, não existem parametros, mas quando eu executo ela do servlet não me traz resultado.

é possivel saber o que esta acontecendo ??

Rafael_Steil

Ao menos que uma instancia nao tenha sido criada, o ResultSet nao pode retornar null.

Consegue colocar o codigo - ou melhor, a parte relevante do codigo - aqui, para entermos melhor o problema?

Rafael

R
ResultSet rs=null;
           boolean aux = false;
           nome=null;
           telres=null;

            try{            
                                				
	String sql= "SELECT * FROM agenda WHERE agenda.data= '" + data1 + "'";            
	Statement st = conexao.createStatement();			rs = st.executeQuery(sql);   
	status = "Comunicação (localizar) --> OK";
				
				   
	if (rs.next())
	{
	     codig = rs.getString(i+1);
	}
               }
              .......


              return ...
}
R

Turma valeu eu encontrei o erro era porque não tinha inicializado uma variavel.

VAleu
:lol:

dgouvea

O método chamado:

public String extensao;

public String retornaImagem()
{
    try {
        String sql = "select * from tb_tp_arquivo where tpa_ext_tp_arquivo = ?";
        String param[] = { extensao };

        Acesso acesso = new Acesso();
        ResultSet rs = acesso.retornaConsulta( sql, param );

        if ( rs.next() ) {
            if ( rs.getString( "tpa_path_imagem" ) != null ) {
                return rs.getString( "tpa_path_imagem" );
            } else {
                return "";
            }
        } else {
            return "";
        }
    } catch ( Exception e ) {
        e.printStackTrace();
        return e.toString();
    }
}

O método de retornar consulta, a conexao é aberta no construtor da classe acesso:

public ResultSet retornaConsulta( String sql, String param[] )
{
    try {
        PreparedStatement ps = con.prepareStatement( sql );
        for ( int i = 0; i < param.length; i++ ) {
            ps.setString( i + 1, param[i] );
        }
        return ps.executeQuery();
    } catch ( Exception e ) {
        e.printStackTrace();
        return null;
    }
}

O código do servlet onde é chamado o método retornaImagem:

TpArquivo tipo = new TpArquivo();
    tipo.extensao = "java";
    img = tipo.retornaImagem();

lembrando que se eu crio uma classe de teste com o mesmo código ele me retorna o path de uma imagem, quando eu executo no servlet ele retorna o resultset null.

vê se vcs podem me ajudar.

valeu !!!

Criado 7 de novembro de 2003
Ultima resposta 10 de nov. de 2003
Respostas 6
Participantes 4