Heim > Java > javaLernprogramm > Welche Parameterübergabemethoden gibt es für die Mybatis-Paging-Abfrage in Java?

Welche Parameterübergabemethoden gibt es für die Mybatis-Paging-Abfrage in Java?

王林
Freigeben: 2023-05-19 10:16:19
nach vorne
1094 Leute haben es durchsucht

1. Parameter in der richtigen Reihenfolge übergeben

In SQL gibt es zwei Möglichkeiten, die Reihenfolge der Parameter auszudrücken, nämlich die Verwendung von arg0, arg1 ... und die Verwendung von param1, param2 .... Diese Methode ist weniger lesbar und wird nicht für die Verwendung in der Entwicklung empfohlen. In meinem Test ist die Definition von Parametern nicht auf das obige Format beschränkt, Sie können sie nach Belieben definieren

1. Persistenzschicht-Schnittstellenmethode

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

2. Neue Bezeichnung für UserMapper.xml-Zuordnungsdatei

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

Hier Ich habe festgestellt, dass Sie keine Parametertypen definieren müssen Seien Sie also nicht überrascht

2. @param-Parameterübergabe

Definieren Sie den Parameternamen über @Param in der Parameterliste der Schnittstellenmethode und geben Sie die Parameterposition über den in der Annotation in definierten Parameternamen an die SQL-Anweisung. Die Parameter dieser Methode sind relativ intuitiv und werden empfohlen.

Welche Parameterübergabemethoden gibt es für die Mybatis-Paging-Abfrage in Java? 1. Persistenzschicht-Schnittstellenmethode

// 测试分页查询方法 -- 顺序传参
    @Test
    public void testFindPage(){
        List<User> users = userMapper.findPage(0,3);
        users.forEach(System.out::println);
    }
Nach dem Login kopieren
2. Fügen Sie der UserMapper.xml-Zuordnungsdatei neue Tags hinzu

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

Beachten Sie, dass die Parameter hier mit den Parametern der Persistenzschichtschnittstelle übereinstimmen müssen, andernfalls wird ein Fehler ausgegeben gemeldet

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

4. Laufergebnisse

3. Benutzerdefinierte POJO-Klassenparameter

Benutzerdefinierte POJO-Klasse, die Attribute dieser Klasse sind die zu übergebenden Parameter im SQL Anweisung Verwenden Sie beim Binden von Parametern einfach den POJO-Eigenschaftsnamen als Parameternamen. Diese Methode wird empfohlen.

1. Benutzerdefinierte POJO-Klasse

Da wir hier zwei Parameter benötigen, einer ist die Startanzahl der Abfragen und der andere die Anzahl der Elemente pro Seite, sodass diese Pojo-Klasse nur zwei Parameter benötigtWelche Parameterübergabemethoden gibt es für die Mybatis-Paging-Abfrage in Java?

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

2 .Persistenzschicht-Schnittstellenmethode

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;
    }
}
Nach dem Login kopieren
3. Fügen Sie der UserMapper.xml-Zuordnungsdatei neue Tags hinzu

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

Hier ist auch zu beachten, dass der Parametername mit dem Namen der Mitgliedsvariablen der benutzerdefinierten POJO-Klasse übereinstimmen muss gleich Es wird ein Fehler gemeldet

4. Neue Testmethode

<!-- 分页查询-POJO传参 -->
    <select id="findPage2" resultType="com.mybatisstudy.pojo.User" parameterType="com.mybatisstudy.pojo.PageQuery">
        select * from user limit #{startIndex},#{pageSize}
    </select>
Nach dem Login kopieren
5. Laufergebnisse

4. Kartenübergabeparameter

Wenn Sie POJO nicht anpassen möchten, können Sie Karte als verwenden ein Träger zum Übergeben von Parametern in der SQL-Anweisung. Verwenden Sie beim Binden von Parametern den Map-Schlüssel als Parameternamen. Diese Methode wird empfohlen

1. Persistenzschicht-Schnittstellenmethode

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

2. Fügen Sie neue Tags zum UserMapper hinzu. Der Parametername muss mit dem Namen des Schlüssels in der Kartensammlung übereinstimmen, sonst tritt derselbe Fehler auf gemeldet werden

Welche Parameterübergabemethoden gibt es für die Mybatis-Paging-Abfrage in Java?

3. Neue Testmethode

/**
     * 分页查询 -- Map传参
     * @param Map
     * @return
     */
    List<User> findPage3(Map<String,Object> params);
Nach dem Login kopieren
4. Laufergebnisse

Das obige ist der detaillierte Inhalt vonWelche Parameterübergabemethoden gibt es für die Mybatis-Paging-Abfrage 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