> 일반적인 문제 > mybatis에서 페이징하는 여러 가지 방법은 무엇입니까?

mybatis에서 페이징하는 여러 가지 방법은 무엇입니까?

藏色散人
풀어 주다: 2023-03-13 13:52:02
원래의
2581명이 탐색했습니다.

mybatis의 세 가지 페이징 방법은 다음과 같습니다. 1. "select * from userslimit startIndex,pageSize;"와 같은 핵심 문과 함께 제한 페이징을 사용합니다. 2. "ListgetUserLRowBounds와 같은 문으로 RowBounds를 사용하여 페이징을 구현합니다. ();"; 3. 이를 달성하려면 페이징 플러그인 "PageHelper"를 사용하십시오.

mybatis에서 페이징하는 여러 가지 방법은 무엇입니까?

이 튜토리얼의 운영 환경: Windows 10 시스템, Dell G3 컴퓨터.

mybatis에서 페이지 매김을 수행하는 여러 가지 방법은 무엇입니까?

MyBatis에서 일반적으로 사용되는 몇 가지 페이징 방법

왜 페이징이 필요한가요?

프런트 엔드에서 데이터를 표시해야 하는 경우 엄청난 양의 데이터와 일회성 표시로 인해 페이지에 많은 양의 데이터가 표시되고 로딩이 완료되지 않을 수 있어 매우 비효율적입니다. 이번에는 페이징 쿼리가 좋은 해결책이 될 수 있습니다. 이 문제는 특정 숫자에 따라 거대한 데이터를 표시하는 것이며, 다음 페이지 또는 이전 페이지를 클릭하여 다른 데이터도 표시할 수 있어 더 효율적입니다!

다음은 mybatis에서 일반적으로 사용되는 몇 가지 페이징 쿼리를 소개합니다!
먼저 데이터베이스의 모든 데이터를 살펴보세요.

mybatis에서 페이징하는 여러 가지 방법은 무엇입니까?

1 Use Limit paging

sql使用的核心语句
로그인 후 복사
-- 语法:表示从startIndex下标开始,一页显示pageSize个
select * from users limit startIndex,pageSize;
-- 语法:表示显示[0,n]范围的数据
select * from users limit n;
로그인 후 복사

Mybatis를 사용하여 sql 기반으로 구현하세요. Writing 인터페이스

 //分页查询
    List<User> getUserLImit(Map<String,Object> map);
로그인 후 복사

Writing Mapper.xml

<!--    分页查询-->
    <select id="getUserLImit" parameterType="map" resultType="pojo.User">
        select * from firend_mq.users limit #{startIndex},#{pageSize}    </select>
로그인 후 복사

Test class

    //测试分页查询
    @Test
    public  void getUserLImit(){
        SqlSession sqlSession = Mybatisutil.getSqlSession();
        UserDao mapper = sqlSession.getMapper(UserDao.class);

        Map<String, Object> map = new HashMap<>();
        map.put("startIndex",0);
        map.put("pageSize",3);
        List<User> userLImit = mapper.getUserLImit(map);
        for (User user : userLImit) {
            System.out.println(user);
        }
        sqlSession.close();
    }
로그인 후 복사

쿼리 결과:

mybatis에서 페이징하는 여러 가지 방법은 무엇입니까?

2 RowBounds 클래스 객체 구현을 기반으로 페이징을 구현합니다. 자바 코드

인터페이스

//RowBounds实现分页查询
    List<User> getUserLRowBounds();
로그인 후 복사
Writing Mapper.xml, query 실제로는 모두 사용자
   <!--   RowBounds 分页查询-->
    <select id="getUserLRowBounds"  resultType="pojo.User">
        select * from firend_mq.users    </select>
로그인 후 복사

Test class

    //RowBounds分页查询
    @Test
    public  void getUserLRowBounds(){
        SqlSession sqlSession = Mybatisutil.getSqlSession();
        //RowBounds对象  参数(起点,个数)
        RowBounds rowBounds = new RowBounds(2, 3);

        //通过java代码层面实现分页,第一个参数是接口类的方法路径
        List<User> userlist = sqlSession.selectList("dao.UserDao.getUserLRowBounds", null, rowBounds);
        for (User user : userlist) {
            System.out.println(user);
        }
        sqlSession.close();
    }
로그인 후 복사
결과:

3 페이징 플러그인을 사용하여 구현mybatis에서 페이징하는 여러 가지 방법은 무엇입니까?

관심이 있으시면 플러그인의 공식 웹사이트 링크를 확인하세요. 공식 웹사이트가 있습니다.

PageHelper 페이징 플러그인

mybatis에서 페이징하는 여러 가지 방법은 무엇입니까?

에 대해 알아보세요.

위 내용은 mybatis에서 페이징하는 여러 가지 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿