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

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

王林
王林앞으로
2023-05-19 10:16:191040검색

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으로 문의하시기 바랍니다. 삭제