URGENTE !consulta em mysql mostrando o último registro

19 respostas
C

E ai galera blz, como faço para fazer uma consulta em Mysql ,mas que me mostre o último registro cadastrado no banco de dados.

Ou melhor ainda como fazedr para no jsp eu exibir a última e todos os registros.

queria tipo assim

ùltimo registro >>>>>>>>>>>

Todos >>>>>>>>>>>>>>>>…

Estou usando MySql(claro) e JSP

PS: A CONSULTA É NA MESMA PÁGINA EM JSP

Valeu

19 Respostas

C

Você quer saber como fica o SQL ou o código JSP para tratar o ResultSet ?

[]s

C

Para que você esteja apto a conseguir ‘navergar’ no ResultSet você deve antes de mais nada criar o statement dessa forma

Statement stmt = con.createStatement( ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_UPDATABLE);

Criando o statement dessa forma … você pode utilizar o método last() disponível na interface ResultSet …

[]s

C

Cara vcs são d+ mesmo, só vcs responderam, valeu memso.

blz mas como uso o método last ???

ResultSet noticia = stmt.executeQuery( "select * from noticias ");

me dé um exemplo por favor

valeu

C

Que isso cara … :oops:

Bom …

ResultSet rs = stmt.executeQuery(“select * form documentos”);

rs.last();
out.println(rs.getString(“Nome”));

Pode ser isso …

Tem 394820394 de formas diferentes de fazer isso … ;D~

[]s

C

Cara eu fiz o que vc disse

Statement stat = con.createStatement( ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_UPDATABLE);

depois para exibir

ResultSet noticia = stmt.executeQuery( “select * from noticias”);

while(noticia.last())

ele só mostra o último mesmo mas ele entra no loop infinito e só para de exibir quando eu clico no stop do browser

o que faço agora ???

C

desculpe o código é

ResultSet noticia = stat.executeQuery( “select * from noticias”);

então o q faço ???

C

Beleza cara valeu

o erro era porque esta usando o while :roll: e é claro ia dá esse erro foi mau

valeu pela ajuda

Abraços

C

cara … vê o exemplo que eu te falei …

normalmente você usaria dessa forma

ResultSet rs = …

while(rs.next()) {

…

}

só que vc vai antes de correr o último registro você vai usar o método last() que vai poscionar o cursor do ResultSet no último registro do mesmo!

[]s

C

Sempre à disposição!!

:lol:

C

Como faço para por exemplo fazer uma pesquisa no bando de dados, e mostrar o registro na tela aleatóriamente, exemplo

Vários banner cadastrados no bando de dados e quero que exiba aleatporiamente os banner´s

Valeu

C

Brother .. na interface ResultSet não se tem nenhum método ou atributo que tenha a quantidade total de registros ..

Uma solução rápida (sem pensar muito, digo!) seria criar um contador. Ou seja, você percorre o resultado e para cada ítem encontrado vc acrescenta 1.

ResultSet rs = .... ;
int cont = 0;

while(rs.next()) {
    cont++;
}

Depois disso ... é necessário o código abaixo!

java.util.Random num = new java.util.Random();
int i = num.nextInt(cont+1);

pronto .. i vai ser um número randômico de 0 até o número de registros do seu resultado!

depois disso você pode utilizar o método absolute(int);

Esse método vai colocar o cursor do ResultSet na posição que você especificar ..

execmplo:

rs.absolute(10); // move o cursor para o décimo registro ..

Se você presar atenção à interface ResultSet verá que tem um método relative(int). Esse método é parecido mas pode confundir um pouco. Ele move n registros a partir do registro atual ..

Considerações a parte .. use o absolute() ..

[]s

C

blz cara cara, amis uma vez obrigado.

Agora só me diz porque ele as vezes mem mostra “nada”, tipo não é null ou nulo, mas “nada” em branco mesmo. e não tenho registro em branco.

MAs no resto tá beleza :slight_smile:

valeu

C

só mais uma coisa, tu tem um tutorial bom de ResultSet, ou um link legal para q eu possa me aprofundar no assunto ???

valeu

C

Bom … só olhando o código e vendo ele rodar pra dizer pq ele não ta trazendo nada …

E outra coisa … os melhores tutoriais são a API do Java e os exemplos existentes no google … :wink:

[]s

S

Olá,

Em MySQL, para se conseguir um regitro aleatório:

ResultSet noticia = stat.executeQuery( “select * from noticias order by rand() limit 1”);

Para se conseguir o último registro *

ResultSet noticia = stat.executeQuery( “select * from noticias order by nome desc limit 1”);

e para obtermos o primeiro *

ResultSet noticia = stat.executeQuery( “select * from noticias order by nome limit 1”);

  • (lembrem-se que em sql é considerado uma heresia os termos primeiro e último: não há ordem estabelecida para registros; existe isto sim uma ordem de valores de determinada(s) colunas, daí a cláusula ‘order by’)

Dependendo da necessidade, é claro, não faz sentido nenhum tratarmos um resultset com TODOS registros para pinçarmos apenas um. Mesmo as 3 consultas acima somadas deverão ser mais rápidas que uma que traga todos registros, sem falar no “consumo” de memória.

Por mais engenhosas que sejam soluções em java (ou quaisquer outras linguagens) a maneira mais rápida de se proceder a “filtros” em bancos de dados sempre será via o prório SGBD!

C

Pooo … claro … eu concordo plenamente com o que vc falou spier

A primeira coisa que eu perguntei foi:

[i]Você quer saber como fica o SQL ou o código JSP para tratar o ResultSet ?

[]s[/i]

como ele não respondeu eu tive que fazer uma escolha … mas sim … o processamento da seleção é muito mais eficiente deixando o mesmo por conta do SGBD … não tenha dúvida … :slight_smile:

[]s

R

[color=“darkblue”]Olá!
3º forma de se fazer isso de 394820394, segundo nosso amigo Clandestino…
ResultSet rs = stmt.executeQuery(“LAST_INSERT_ID()”);
Essa função é tratando-se de MySQL, ela retorna o último indice inserido no banco de dados…
Isso é bom no caso de vc criar inserir um indice e no mesmo instante querer saber o valor gerado…
Pelo menos eu consigo enxergar assim essa sua dúvida, não sei se resolveria :wink:

[]'s[/color]

C

Cara as dicas q vcs me deram foram de muita imprtância para eu resolver o meu problema.

MAs agora eu queria saber como faço para exbir no lugar do último registro cadastrado, quero q ele exiba os dois últimos por exemplo.

tem como ???

Valeu

C

Cara esses exemplos foram muito legais, respondendo ao clandestino, preferia que fosse no sql, pois como o próprio spier disse é bem mais rápido e consome, menas memória e código.

e na instrução mysql tem como eu filtrar apenas os dois últimos ou o 3 últimos ???

esse é para peguar dois registros mas o valor é randômico, como faço para pegar os dois últimos ???

select * from promocoes order by rand() limit 2

valeu

Criado 8 de setembro de 2004
Ultima resposta 18 de set. de 2004
Respostas 19
Participantes 4