찾다

 >  Q&A  >  본문

java - 비즈니스에서 페이징 로딩을 구현하는 보다 우아한 방법은 무엇입니까?

다음 학기 학교 도서관을 담당하는 프로젝트의 일환으로 지금 비즈니스 설계에 어려움을 겪고 있습니다.

예를 들어 홈페이지에서 학생들이 관련 정보를 쿼리할 때 모든 정보를 로드하기 위해 ajax를 사용할 계획입니다. 저는 Zhihu와 같이 하단으로 드래그하여 자동으로 로드되는 많은 웹사이트에 익숙하지 않습니다. 내 생각은 하단에 페이징 옵션을 설정하고, 각 페이지에 15개의 레코드를 표시하고, ajax를 사용하여 모든 기사를 로드하는 것입니다.

이런 식으로 SQL 문을 select xxx from xxx condition limit 15 offset xxx。但是现在由于要做分页,我必须要知道一个学生总共有多少条记录在数据库中,前端才好设计,总记录可以通过sql语句select count(*) from xxx condition쿼리한 후 전체 레코드가 프런트 엔드에 저장됩니다.

이 경우 쿼리를 두 개의 SQL 문으로 분할해야 하는데, 이보다 더 우아한 구현 솔루션이 있을까요?

ps: 유사한 페이징 디자인을 요구하는 시스템에는 유사한 비즈니스가 많기 때문에 두 개의 SQL 문을 사용하여 매번 별도로 쿼리하는 것은 너무 부적절합니다.

보충제

응답자는질문을 보지도 않는 것 같습니다

. 한 사람은 SQL 문 1에 대해 답변했고, 다른 사람은 프런트엔드에 대해 이야기했습니다.

답변해 주셔서 감사합니다. 문제가 해결되었습니다. 두 개의 SQL 문만 사용할 수 있는 것 같습니다 ^_^

🎜
阿神阿神2729일 전645

모든 응답(6)나는 대답할 것이다

  • 大家讲道理

    大家讲道理2017-06-06 09:53:51

    으아악 으아악 으아악

    회신하다
    0
  • 仅有的幸福

    仅有的幸福2017-06-06 09:53:51

    생각하지 마세요. 2개여야 합니다.
    하나를 가질 수도 있습니다:
    select * from table
    union
    select 0, 0...., count(*) from table

    회신하다
    0
  • 怪我咯

    怪我咯2017-06-06 09:53:51

    이것은 정상입니다. SQL을 사용하여 문제를 해결하려면 데이터베이스의 모든 개체를 확인하고 일련의 작업을 수행해야 하지만 메모리가 폭발할 수도 있습니다.

    회신하다
    0
  • 淡淡烟草味

    淡淡烟草味2017-06-06 09:53:51

    생각하지 마세요. 둘이겠죠. 페이징 구현은 일반 클래스 페이지<T>를 정의하고 그 안에 무엇이 들어 있는지 더 자세히 설명해 주시겠습니까?

    회신하다
    0
  • 習慣沉默

    習慣沉默2017-06-06 09:53:51

    PageHelper를 사용해 보세요. 단지 SQL 문일 뿐이므로 제한도 필요하지 않습니다

    회신하다
    0
  • 过去多啦不再A梦

    过去多啦不再A梦2017-06-06 09:53:51

    우아한 페이징을 위해 다양한 페이징용 플러그인이 있습니다

    회신하다
    0
  • 취소회신하다