Heim  >  Artikel  >  Java  >  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?

王林
王林nach vorne
2023-05-19 10:16:19990Durchsuche

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);

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

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

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);
    }
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);

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>

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);
    }

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

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

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>
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);
    }

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);

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!

Stellungnahme:
Dieser Artikel ist reproduziert unter:yisu.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen