> Java > java지도 시간 > Java에서 Mybatis 페이징 쿼리에 대한 매개변수 전달 방법은 무엇입니까?

Java에서 Mybatis 페이징 쿼리에 대한 매개변수 전달 방법은 무엇입니까?

王林
풀어 주다: 2023-05-19 10:16:19
앞으로
1081명이 탐색했습니다.

1. 매개변수를 순서대로 전달

SQL에서 매개변수의 순서를 표현하는 방법에는 arg0, arg1...을 사용하는 방법과 param1, param2....를 사용하는 두 가지 방법이 있습니다. 이 방법은 읽기가 어렵기 때문에 개발에 사용하지 않는 것이 좋습니다. 내 테스트에서는 매개변수 정의가 위 형식에 국한되지 않고 마음대로 정의할 수 있습니다.

1. 지속성 레이어 인터페이스 방법

/**
     * 分页查询 -- 顺序传参
     * @param startIndex 开始索引
     * @param pageSize 每页条数
     * @return
     */
    List<User> findPage(int startIndex,int pageSize);
로그인 후 복사

2. UserMapper.xml 매핑 파일에 대한 새 레이블

<!-- 分页查询-顺序传参 -->
    <select id="findPage" resultType="com.mybatisstudy.pojo.User">
        select * from user limit #{param1},#{param2}
    </select>
로그인 후 복사

여기 찾아보니 매개변수 유형을 정의할 필요가 없습니다

3. 테스트 방법이 추가되었습니다

// 测试分页查询方法 -- 顺序传参
    @Test
    public void testFindPage(){
        List<User> users = userMapper.findPage(0,3);
        users.forEach(System.out::println);
    }
로그인 후 복사

4. 실행 결과

Java에서 Mybatis 페이징 쿼리에 대한 매개변수 전달 방법은 무엇입니까?

여기서 시작 번호는 0부터 시작하고 데이터 ID는 1부터 시작합니다. , 그러니 놀라지 마세요

2. @param 매개변수 전달

인터페이스 메소드의 매개변수 목록에서 @Param을 통해 매개변수 이름을 정의하고, 주석에 정의된 매개변수 이름을 통해 매개변수 위치를 지정합니다. SQL 문. 이 방법의 매개변수는 비교적 직관적이므로 권장됩니다.

1. 지속성 레이어 인터페이스 방법

/**
     * 分页查询 -- @param传参
     * @param startIndex 开始索引
     * @param pageSize 每页条数
     * @return
     */
    List<User> findPage1(@Param("startIndex")int startIndex,@Param("pageSize")int pageSize);
로그인 후 복사

2. UserMapper.xml 매핑 파일에 새 태그 추가

<!-- 分页查询-@param传参 -->
    <select id="findPage1" resultType="com.mybatisstudy.pojo.User">
        select * from user limit #{startIndex},#{pageSize}
    </select>
로그인 후 복사

여기의 매개변수는 지속성 레이어 인터페이스의 매개변수와 일치해야 합니다. 그렇지 않으면 오류가 발생합니다. 보고됨

3. 새로운 테스트 방법

// 测试分页查询方法 -- @param传参
    @Test
    public void testFindPage1(){
        List<User> users = userMapper.findPage1(3,3);
        users.forEach(System.out::println);
    }
로그인 후 복사

4. 실행 결과

Java에서 Mybatis 페이징 쿼리에 대한 매개변수 전달 방법은 무엇입니까?

3. 사용자 정의 POJO 클래스 매개변수

사용자 정의 POJO 클래스, 이 클래스의 속성은 SQL에서 전달되는 매개변수입니다. 명령문 매개변수를 바인딩할 때 POJO 속성 이름을 매개변수 이름으로 사용하면 됩니다. 이 방법을 권장합니다.

1. 사용자 정의 POJO 클래스

여기에는 두 개의 매개변수가 필요하므로 하나는 쿼리의 시작 개수이고 다른 하나는 페이지당 항목 수이므로 이 pojo 클래스에는 두 개의 매개변수만 필요합니다

package com.mybatisstudy.pojo;
 
public class PageQuery {
    private int startIndex;
    private int pageSize;
 
    public PageQuery(int i, int i1) {
        this.startIndex = i;
        this.pageSize = i1;
    }
 
    public int getStartIndex() {
        return startIndex;
    }
 
    public void setStartIndex(int startIndex) {
        this.startIndex = startIndex;
    }
 
    public int getPageSize() {
        return pageSize;
    }
 
    public void setPageSize(int pageSize) {
        this.pageSize = pageSize;
    }
}
로그인 후 복사

2 . 지속성 레이어 인터페이스 방법

/**
     * 分页查询 -- POJO传参
     * @param PageQuery
     * @return
     */
    List<User> findPage2(PageQuery pageQuery);
로그인 후 복사

3. UserMapper.xml 매핑 파일에 새 태그 추가

<!-- 分页查询-POJO传参 -->
    <select id="findPage2" resultType="com.mybatisstudy.pojo.User" parameterType="com.mybatisstudy.pojo.PageQuery">
        select * from user limit #{startIndex},#{pageSize}
    </select>
로그인 후 복사

여기서 매개변수 이름은 사용자 정의 POJO 클래스의 멤버 변수 이름과 일치해야 합니다. 동일 오류가 보고됩니다

4. 새로운 테스트 방법

// 测试分页查询方法 -- POJO传参
    @Test
    public void testFindPage2(){
        PageQuery pageQuery = new PageQuery(2,3);
        List<User> users = userMapper.findPage2(pageQuery);
        users.forEach(System.out::println);
    }
로그인 후 복사

5. 실행 결과

Java에서 Mybatis 페이징 쿼리에 대한 매개변수 전달 방법은 무엇입니까?

4. 맵 전달 매개변수

POJO를 사용자 정의하지 않으려면 Map as를 사용할 수 있습니다. SQL 문에서 매개변수를 전달하는 매개변수 매개변수를 바인딩할 때 맵의 키를 매개변수 이름으로 사용합니다. 이 방법을 권장합니다

1. 지속성 레이어 인터페이스 방법

/**
     * 分页查询 -- Map传参
     * @param Map
     * @return
     */
    List<User> findPage3(Map<String,Object> params);
로그인 후 복사

2. UserMapper에 새 태그를 추가합니다. 일관성이 있어야 하며, 매개변수 이름은 맵 컬렉션의 키 이름과 일치해야 합니다. 그렇지 않으면 동일한 오류가 발생합니다. 보고됩니다

3. 새로운 테스트 방법

<!-- 分页查询-Map传参 -->
    <select id="findPage3" resultType="com.mybatisstudy.pojo.User" parameterType="map">
        select * from user limit #{startIndex},#{pageSize}
    </select>
로그인 후 복사
4. 실행 결과

위 내용은 Java에서 Mybatis 페이징 쿼리에 대한 매개변수 전달 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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