Heim > Java > javaLernprogramm > Hauptteil

Was sind die Paging-Implementierungsmethoden von MyBatis in Java?

PHPz
Freigeben: 2023-05-07 08:04:16
nach vorne
724 Leute haben es durchsucht

Vorwort

Paginierung ist eine Hürde, die wir in der Entwicklung nicht umgehen können! Wenn die Menge Ihrer Daten groß ist, ist es unrealistisch, alle Daten auf einmal zu überprüfen. Deshalb fragen wir normalerweise seitenweise ab, was den Druck auf den Server verringert und Geschwindigkeit und Effizienz verbessert! Es verringert auch den Druck beim Front-End-Rendering!

Hinweis: Da die von Java maximal zulässige Ganzzahl 2147483647 ist, ist die maximal zulässige Ganzzahl, die diese Grenze verwenden kann, ebenfalls 2147483647. Das gleichzeitige Herausnehmen einer großen Datenmenge kann zu einem Speicherüberlauf führen. Verwenden Sie es daher bei großen Datenmengen mit Vorsicht Abfragesituationen!

1. Paging begrenzen

Grammatik:

limit ${startPos},${pageSize}
Nach dem Login kopieren

In tatsächlichen Projekten fügen wir normalerweise ein Nullurteil wie folgt hinzu:

<if test="startPos!=null and pageSize!=null">
    limit ${startPos},${pageSize}
</if>
Nach dem Login kopieren

Business-Layer-Code:

<select id="getUserInfo1" parameterType="map" resultType="dayu">
    select * from user
    <if test="startPos!=null and pageSize!=null">
        limit ${startPos},${pageSize}
    </if>
</select>
Nach dem Login kopieren
List<User> getUserInfo1(Map<String,Object> map);
Nach dem Login kopieren
rrree

Bsp Durchführungsergebnisse:

Was sind die Paging-Implementierungsmethoden von MyBatis in Java?

Wenn 0,10 übergeben wird:

Was sind die Paging-Implementierungsmethoden von MyBatis in Java?

Zusammenfassung:

  • Grenzwert 0,10;

  • 0 bedeutet, ab dem 0. Datenelement zu beginnen

  • 10 Es bedeutet, 10 Datenelemente zu überprüfen.

  • Wenn Sie die zweite Seite erreichen, beträgt die Grenze 10,10; Um es im Unternehmen hinzuzufügen, folgen Sie einfach der Paging-Ebene! Keine Angabe spezifizierter Daten erforderlich!

  • Dies gehört jedoch zum logischen Paging, das heißt, die SQL-Abfrage fragt tatsächlich alle Daten ab, die nur auf der Geschäftsebene ausgelagert werden. Es beansprucht mehr Speicher und die Daten werden möglicherweise nicht rechtzeitig aktualisiert eine gewisse Verzögerung! Nicht empfohlen!

RowBounds-Objekt hat zwei Eigenschaften: Offset und Limit.

Offset:

Anfangszeilennummer

  • Limit:Die Anzahl der erforderlichen Datenzeilen

  • Daher sind die herausgenommenen Daten: Beginnend mit der Zeile Offset + 1 nehmen Sie die Limitzeile

    Business-Layer-Code:
@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();
}
Nach dem Login kopieren
@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();
}
Nach dem Login kopieren
List<User> getUserInfoRowBounds(RowBounds rowBounds);
Nach dem Login kopieren

Ergebnisse der Ausführungsansicht:

3. Mybatis_PageHelper-Paging-Plug-in

Wir stellen das JAR-Paket vor: Was sind die Paging-Implementierungsmethoden von MyBatis in Java?

<select id="getUserInfoRowBounds" resultType="dayu">
   select * from user
</select>
Nach dem Login kopieren

Konfigurieren Sie die MyBatis-Kernkonfigurationsdatei:

<dependency>
   <groupId>com.github.pagehelper</groupId>
   <artifactId>pagehelper</artifactId>
   <version>5.1.7</version>
</dependency>
Nach dem Login kopieren

Business-Layer-Code:

<plugins>
    <plugin interceptor="com.github.pagehelper.PageInterceptor" />
</plugins>
Nach dem Login kopieren

Ausführungsergebnis:

Zusammenfassung:

Was sind die Paging-Implementierungsmethoden von MyBatis in Java?PageHelper ist immer noch sehr nützlich und es ist auch ein physisches Paging!

Tatsächlich verwenden wir im Allgemeinen eher den zweiten Typ: Mapper-Schnittstellenmethodenaufruf

@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();
}
Nach dem Login kopieren
Nach dem Login kopieren

Erweiterung:

@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();
}
Nach dem Login kopieren
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWas sind die Paging-Implementierungsmethoden von MyBatis in Java?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:yisu.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage