Rumah > Java > javaTutorial > Apakah kaedah pelaksanaan halaman MyBatis di Jawa?

Apakah kaedah pelaksanaan halaman MyBatis di Jawa?

PHPz
Lepaskan: 2023-05-07 08:04:16
ke hadapan
758 orang telah melayarinya

Kata Pengantar

Paging adalah halangan yang tidak dapat kita lalui dalam pembangunan! Apabila jumlah data anda besar, adalah tidak realistik untuk menyemak semua data sekaligus, jadi kami biasanya bertanya dalam halaman, yang mengurangkan tekanan pada pelayan dan meningkatkan kelajuan dan kecekapan! Ia juga mengurangkan tekanan pada pemaparan bahagian hadapan!

Nota: Memandangkan integer maksimum yang dibenarkan oleh Java ialah 2147483647, integer maksimum yang boleh digunakan mengikut had juga ialah 2147483647. Mendapatkan semula sejumlah besar data pada satu masa boleh menyebabkan limpahan memori , jadi berhati-hati apabila menanyakan penggunaan data besar!

1. Hadkan paging

Sintaks:

limit ${startPos},${pageSize}
Salin selepas log masuk

Dalam projek sebenar, kami biasanya menambah pertimbangan batal, seperti berikut :

<if test="startPos!=null and pageSize!=null">
    limit ${startPos},${pageSize}
</if>
Salin selepas log masuk

Kod lapisan perniagaan:

<select id="getUserInfo1" parameterType="map" resultType="dayu">
    select * from user
    <if test="startPos!=null and pageSize!=null">
        limit ${startPos},${pageSize}
    </if>
</select>
Salin selepas log masuk
List<User> getUserInfo1(Map<String,Object> map);
Salin selepas log masuk
@Test
 public void selectUser() {
     SqlSession session = MybatisUtils.getSession();
     UserMapper mapper = session.getMapper(UserMapper.class);
     //这里塞值
      Map<String,Object> parms = new HashMap<>();
      parms.put("startPos","0");
      parms.put("pageSize","5");
     List<User> users = mapper.getUserInfo1(parms);
     for (User map: users){
         System.out.println(map);
    }
     session.close();
}
Salin selepas log masuk

Hasil pelaksanaan:

Apakah kaedah pelaksanaan halaman MyBatis di Jawa?

Input 0, 10:

Apakah kaedah pelaksanaan halaman MyBatis di Jawa?

Ringkasan:

  • had 0,10;

  • 0 bermakna bermula dari data ke-0

  • 10 bermaksud menyemak 10 keping data

  • Apabila anda mencapai halaman kedua, hadnya ialah 10,10;

2. RowBounds paging (tidak disyorkan)

RowBounds membantu kami menghilangkan kandungan had, kita hanya perlu memberi perhatian kepada paging pada lapisan perniagaan! Tidak perlu memasukkan data yang ditentukan!

Walau bagaimanapun, ini adalah paging logik, iaitu, pertanyaan SQL sebenarnya menanyakan semua data, yang hanya paging pada lapisan perniagaan Ia memerlukan lebih banyak memori, dan data tidak dikemas kini dalam masa, dan mungkin ada lag tertentu! Tidak disyorkan!

Objek RowBounds mempunyai 2 sifat, mengimbangi dan had.

  • offset:Bilangan baris permulaan

  • had: Bilangan baris data yang diperlukan

Oleh itu, data yang diambil ialah: bermula dari baris offset+1, ambil garis had

Kod lapisan perniagaan:

@Test
public void selectUserRowBounds() {
    SqlSession session = MybatisUtils.getSession();
    UserMapper mapper = session.getMapper(UserMapper.class);
    // List<User> users = session.selectList("com.dy.mapper.UserMapper.getUserInfoRowBounds",null,new RowBounds(0, 5));
    List<User> users = mapper.getUserInfoRowBounds(new RowBounds(0,5));
    for (User map: users){
        System.out.println(map);
    }
    session.close();
}
Salin selepas log masuk
List<User> getUserInfoRowBounds(RowBounds rowBounds);
Salin selepas log masuk
<select id="getUserInfoRowBounds" resultType="dayu">
   select * from user
</select>
Salin selepas log masuk

Laksanakan dan lihat keputusan:

Apakah kaedah pelaksanaan halaman MyBatis di Jawa?

3. pakej:

<dependency>
   <groupId>com.github.pagehelper</groupId>
   <artifactId>pagehelper</artifactId>
   <version>5.1.7</version>
</dependency>
Salin selepas log masuk
Konfigurasikan fail konfigurasi teras MyBatis:

<plugins>
    <plugin interceptor="com.github.pagehelper.PageInterceptor" />
</plugins>
Salin selepas log masuk
Kod lapisan perniagaan:

rreeeHasil pelaksanaan:

Apakah kaedah pelaksanaan halaman MyBatis di Jawa?Ringkasan:

PageHelper masih sangat berguna, dan ia juga mempunyai halaman fizikal!

Malah, kami biasanya lebih banyak menggunakan jenis kedua:

Panggilan kaedah antara muka Mapper

@Test
public void selectUserPageHelper() {
    SqlSession session = MybatisUtils.getSession();
    UserMapper mapper = session.getMapper(UserMapper.class);
    //第二种,Mapper接口方式的调用,推荐这种使用方式。
    PageHelper.startPage(1, 3);
    List<User> list = mapper.getUserInfo();
    //用PageInfo将包装起来
    PageInfo page = new PageInfo(list);
    for (User map: list){
        System.out.println(map);
    }
    System.out.println("page:---"+page);
    session.close();
}
Salin selepas log masuk
Salin selepas log masuk
Sambungan:

@Test
public void selectUserPageHelper() {
    SqlSession session = MybatisUtils.getSession();
    UserMapper mapper = session.getMapper(UserMapper.class);
    //第二种,Mapper接口方式的调用,推荐这种使用方式。
    PageHelper.startPage(1, 3);
    List<User> list = mapper.getUserInfo();
    //用PageInfo将包装起来
    PageInfo page = new PageInfo(list);
    for (User map: list){
        System.out.println(map);
    }
    System.out.println("page:---"+page);
    session.close();
}
Salin selepas log masuk
Salin selepas log masuk

Atas ialah kandungan terperinci Apakah kaedah pelaksanaan 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