Boa noite,
Preciso fazer um select para retornar os 16 primeiros registros da tabela, depois os 16 seguintes e assim adiante.
A minha necessidade é que eu estou listando 16 produtos por página e preciso que seja exibido os outros 16 registros em outra página.
Como eu poderia fazer isso?
Grato.
O que você procura se chama paginação.
Caso você esteja utilizando JPA/Hibernate aqui mostra como fazer: JPA Consultas e Dicas.
Caso você esteja utilizando JDBC você vai achar fácil no google: “paginacao JDBC”
eu teria que selecionar todos os registros e separar com o JDBC, é isso mesmo que eu entendi?
Não necessariamente. Você poderia retornar todos em um select e ir exibindo conforme o usuario fosse paginando (caso não sejam tantos registros e a memória não for gargalo em relação ao acesso ao banco), ou pode usar limitadores de retorno e deslocamento(offset) do resultset. Se não me engano tem algo em ANSI SQL que a maioria dos SGBD implementam, mas vale dar uma olhada na documentação de qual você está usando.
Era o OFFSET que eu precisava!
Achei nesse link http://www.petefreitag.com/item/451.cfm
Exemplo:
SELECT * FROM product LIMIT 16 OFFSET 0;
SELECT * FROM product LIMIT 16 OFFSET 16;
SELECT * FROM product LIMIT 16 OFFSET 32;
/*
LIMIT: indica o máximo de registros que podem retornar
OFFSET: a partir de qual linha quer retornar e isso independe da chave primária
*/