Problema ao mostrar resultados usando WHILE(rs.next())

12 respostas
F

pessoal

Tenho uma busca que se retornar um registro apenas nao mostra, estou usando asssim:
while(resultset.next())
{
busca
}

dai se while nao teiver nada eu redireciono para um pargina que informa que nenhum resultado foi encontrado, so que se um resultado apenas for encontrados nao ira me mostrar ele cai direto nesta pagina…

alguem sabe outro comando ou algo parecido que eu possa usar???

fernando Becker

12 Respostas

victor.godinho

Kara, geralmente eu utilizo um “programação orientado a flags” neste caso, hahahaha…

que ai no caso ficaria assim:

while(resultset.next()){ quantidade++; } if (quantidade == 1) { //redirecione } else { //Mostrar lista }

Ou você pode fazer 2 if’s, tipo:

if (resultset.next()) {
    if (resultset.next()) {
        resultset.previous();
        do {
        } while(resultset.next());
    } else {
        //Exiba único.
    }
}
adriano.ferranti

Desculpe, não deu pra entender seu problema. Você pode tentar ser um pouco mais claro?

F

victor.godinho:
Kara, geralmente eu utilizo um “programação orientado a flags” neste caso, hahahaha…

que ai no caso ficaria assim:

while(resultset.next()){ quantidade++; } if (quantidade == 1) { //redirecione } else { //Mostrar lista }

Ou você pode fazer 2 if’s, tipo:

if (resultset.next()) {
    if (resultset.next()) {
        resultset.previous();
        do {
        } while(resultset.next());
    } else {
        //Exiba único.
    }
}

já tentei fazer algo parecido mai o previows nao funciona em JSP tens outra solucao???

F

é simples meu eu executo um statemetQuery e armazeno em um resultset so que quando ele me retorna apenas um resultado do banco de dados ele nao consegue mostra por que estou usando o next() queria saber se tem outro comando ou algo deferente para ser feito na minha aplicacao??

entende?

adriano.ferranti

Certo, agora entendi… Para vc usar o previous() o ResultSet não pode estar definido com o parãmetro TYPE_FORWARD_ONLY. Você pode usar:

TYPE_SCROLL_INSENSITIVE: com este parâmetro o ResultSet poderá ser navegável em qualquer direção, para frente e para trás, e será insensível a mudanças feitas por outras transações ou por outros Statements da mesma transação.

TYPE_SCROLL_SENSITIVE: com este parâmetro o ResultSet poderá ser navegável para qualquer direção, e será sensível a mudanças feitas por outras transações ou por outros Statements da mesma transação.

adriano.ferranti

Certo, agora entendi… Para vc usar o previous() o ResultSet não pode estar definido com o parãmetro TYPE_FORWARD_ONLY. Você pode usar:

TYPE_SCROLL_INSENSITIVE: com este parâmetro o ResultSet poderá ser navegável em qualquer direção, para frente e para trás, e será insensível a mudanças feitas por outras transações ou por outros Statements da mesma transação.

TYPE_SCROLL_SENSITIVE: com este parâmetro o ResultSet poderá ser navegável para qualquer direção, e será sensível a mudanças feitas por outras transações ou por outros Statements da mesma transação.

F

cara nao entendi…
na pratica como uso esse TYPE_SCROLL_SENSITIVE:???

adriano.ferranti

Se vc não informar explicitamente, o resultset será TYPE_FORWARD_ONLY, então o que você deve fazer é usar o método sobreposto do createStatement.

Statement s = null;
            if (sensitivity.equalsIgnoreCase("insensitive")) {
                System.out.println("creating a TYPE_SCROLL_INSENSITIVE cursor");
                s = connection.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, 
                    ResultSet.CONCUR_READ_ONLY);
            } else {
                System.out.println("creating a TYPE_SCROLL_SENSITIVE cursor");
                s = connection.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, 
                    ResultSet.CONCUR_READ_ONLY);
            }
F

mas vc tem certeza q

F

mas vc tem certeza q jsp reconhece esses comandoa?

adriano.ferranti

Quando você diz JSP você quer dizer um scriplet, certo?
Lembre se que o JSP é transformado em um servlet pelo container, então se funciona num servlet ou outra classe java, vai funcionar em um jsp.

F

sim

Criado 26 de abril de 2007
Ultima resposta 27 de abr. de 2007
Respostas 12
Participantes 3