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

Apakah kaedah lulus parameter untuk pertanyaan halaman Mybatis di Jawa?

王林
Lepaskan: 2023-05-19 10:16:19
ke hadapan
1081 orang telah melayarinya

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);
Salin selepas log masuk

2. Pemetaan UserMapper.xml fail baharu Tambah teg

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

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);
    }
Salin selepas log masuk

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);
Salin selepas log masuk

2. Teg baharu untuk fail pemetaan UserMapper.xml

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

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);
    }
Salin selepas log masuk

4. Hasil berjalan

< . gunakan nama sifat POJO sebagai nama parameter. Kaedah ini disyorkan.

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;
    }
}
Salin selepas log masuk
2 kaedah antara muka lapisan Kegigihan

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

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>
Salin selepas log masuk

< 🎜. >

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);
    }
Salin selepas log masuk
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);
Salin selepas log masuk

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>
Salin selepas log masuk

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);
    }
Salin selepas log masuk
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!

Label berkaitan:
sumber:yisu.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan