Rumah  >  Artikel  >  Java  >  Apakah kaedah lulus parameter untuk pertanyaan halaman Mybatis di Jawa?

Apakah kaedah lulus parameter untuk pertanyaan halaman Mybatis di Jawa?

王林
王林ke hadapan
2023-05-19 10:16:19990semak imbas

1. Melepasi parameter mengikut urutan

Dalam SQL, terdapat dua cara untuk menyatakan susunan parameter, iaitu menggunakan arg0, arg1... dan menggunakan param1, param2.... Kaedah ini kurang boleh dibaca dan tidak disyorkan untuk digunakan dalam pembangunan. Dalam ujian saya, takrifan parameter tidak terhad kepada format di atas, anda boleh mentakrifkannya sesuka hati

1. Kaedah antara muka lapisan kegigihan

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

2. Pemetaan UserMapper.xml fail baharu Tambah teg

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

Di sini saya mendapati anda tidak perlu mentakrifkan jenis jenis parameter

3 kaedah ujian

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

4. Menjalankan hasil

Apakah kaedah lulus parameter untuk pertanyaan halaman Mybatis di Jawa?

Memandangkan nombor permulaan di sini bermula dari 0 dan ID data bermula dari 1, jangan terkejut

2. lulus parameter @param

Tentukan nama parameter melalui @Param dalam senarai parameter kaedah antara muka dan nyatakan kedudukan parameter melalui parameter nama yang ditakrifkan dalam anotasi dalam pernyataan Sql. Parameter kaedah ini agak intuitif dan disyorkan.

1. Kaedah antara muka lapisan kegigihan

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

2. Teg baharu untuk fail pemetaan UserMapper.xml

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

Perhatikan bahawa di sini Parameter mestilah konsisten dengan parameter antara muka lapisan kegigihan, jika tidak, ralat akan dilaporkan

3. Kaedah ujian baharu

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

4. Hasil berjalan

Apakah kaedah lulus parameter untuk pertanyaan halaman Mybatis di Jawa? 1. Kelas POJO tersuai

Memandangkan kita memerlukan dua parameter di sini, satu ialah bilangan permulaan pertanyaan dan satu lagi ialah bilangan entri setiap halaman, jadi ini Kelas pojo hanya memerlukan dua parameter

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 kaedah antara muka lapisan Kegigihan

/**
     * 分页查询 -- POJO传参
     * @param PageQuery
     * @return
     */
    List<User> findPage2(PageQuery pageQuery);

3. Teg baharu untuk fail pemetaan UserMapper.xml
<!-- 分页查询-POJO传参 -->
    <select id="findPage2" resultType="com.mybatisstudy.pojo.User" parameterType="com.mybatisstudy.pojo.PageQuery">
        select * from user limit #{startIndex},#{pageSize}
    </select>

Ia juga penting untuk diperhatikan di sini bahawa nama parameter mesti konsisten dengan nama pembolehubah ahli kelas POJO tersuai, jika tidak, ralat akan dilaporkan

4. Baharu kaedah ujian

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

4. POJO, anda boleh menggunakan Map as The carrier untuk menghantar parameter, hanya gunakan Map Key sebagai nama parameter apabila mengikat parameter dalam pernyataan SQL. Kaedah ini disyorkan untuk menggunakan

1. Kaedah antara muka lapisan kegigihan

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

2. Teg baharu untuk fail pemetaan UserMapper.xml Apakah kaedah lulus parameter untuk pertanyaan halaman Mybatis di Jawa?

<!-- 分页查询-Map传参 -->
    <select id="findPage3" resultType="com.mybatisstudy.pojo.User" parameterType="map">
        select * from user limit #{startIndex},#{pageSize}
    </select>

di sini Ia juga penting untuk ambil perhatian bahawa bilangan parameter mesti konsisten dengan bilangan koleksi peta anda, dan nama parameter mesti konsisten dengan nama kunci dalam koleksi peta, jika tidak, ralat yang sama akan dilaporkan

3. Kaedah ujian baharu

// 测试分页查询方法 -- Map传参
    @Test
    public void testFindPage3(){
        Map<String,Object> params = new HashMap<>();
        params.put("startIndex",0);
        params.put("pageSize",4);
        List<User> users = userMapper.findPage3(params);
        users.forEach(System.out::println);
    }

4

Atas ialah kandungan terperinci Apakah kaedah lulus parameter untuk pertanyaan halaman Mybatis di Jawa?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:yisu.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam