Maison > Java > javaDidacticiel > le corps du texte

Quelles sont les méthodes de transmission de paramètres pour la requête de pagination Mybatis en Java ?

王林
Libérer: 2023-05-19 10:16:19
avant
1042 Les gens l'ont consulté

1. Passer les paramètres dans l'ordre

En SQL, il existe deux manières d'exprimer l'ordre des paramètres, à savoir en utilisant arg0, arg1... et en utilisant param1, param2. ... Cette méthode est moins lisible et n’est pas recommandée pour une utilisation en développement. Dans mon test, la définition des paramètres ne se limite pas au format ci-dessus, vous pouvez le définir à volonté

1. Méthode d'interface de couche de persistance

/**
     * 分页查询 -- 顺序传参
     * @param startIndex 开始索引
     * @param pageSize 每页条数
     * @return
     */
    List<User> findPage(int startIndex,int pageSize);
Copier après la connexion

2 . UserMapper Nouvelles balises ajoutées au fichier de mappage .xml

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

Ici, j'ai découvert que je n'avais pas besoin de définir le type de paramètre #🎜🎜 #

3. Nouvelle méthode de test

// 测试分页查询方法 -- 顺序传参
    @Test
    public void testFindPage(){
        List<User> users = userMapper.findPage(0,3);
        users.forEach(System.out::println);
    }
Copier après la connexion

4. #À cause du numéro de départ ici, il commence à 0 et l'identifiant des données commence à 1, alors ne soyez pas surpris

2. Passage du paramètre @param Quelles sont les méthodes de transmission de paramètres pour la requête de pagination Mybatis en Java ?

dans la méthode d'interface Le nom du paramètre est défini via @Param dans la liste des paramètres et la position du paramètre est spécifiée via le nom du paramètre défini dans l'annotation de l'instruction SQL. Les paramètres de cette méthode sont relativement intuitifs et sont recommandés.

1. Méthode d'interface de couche de persistance

/**
     * 分页查询 -- @param传参
     * @param startIndex 开始索引
     * @param pageSize 每页条数
     * @return
     */
    List<User> findPage1(@Param("startIndex")int startIndex,@Param("pageSize")int pageSize);
Copier après la connexion

2. Nouvelle balise pour le fichier de cartographie UserMapper.xml
<!-- 分页查询-@param传参 -->
    <select id="findPage1" resultType="com.mybatisstudy.pojo.User">
        select * from user limit #{startIndex},#{pageSize}
    </select>
Copier après la connexion

Notez que les paramètres ici doivent être cohérents avec les paramètres de l'interface de la couche de persistance, sinon une erreur sera signalée

3. Nouvelle méthode de test#🎜 🎜 #
// 测试分页查询方法 -- @param传参
    @Test
    public void testFindPage1(){
        List<User> users = userMapper.findPage1(3,3);
        users.forEach(System.out::println);
    }
Copier après la connexion
4. Résultats d'exécution

3. la classe POJO. Les attributs de cette classe sont les paramètres à transmettre. Lors de la liaison des paramètres dans l'instruction SQL, utilisez le nom de l'attribut POJO comme nom du paramètre. Cette méthode est recommandée.

1. Classe POJO personnalisée

Quelles sont les méthodes de transmission de paramètres pour la requête de pagination Mybatis en Java ? Puisque nous avons besoin de deux paramètres ici, l'un est le nombre de requêtes de départ et l'autre est le nombre d'éléments par page Combien d'entrées, donc cette classe pojo n'a besoin que de deux paramètres

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;
    }
}
Copier après la connexion

2 Méthode d'interface de couche de persistance
/**
     * 分页查询 -- POJO传参
     * @param PageQuery
     * @return
     */
    List<User> findPage2(PageQuery pageQuery);
Copier après la connexion

3. file Ajouter une nouvelle balise

<!-- 分页查询-POJO传参 -->
    <select id="findPage2" resultType="com.mybatisstudy.pojo.User" parameterType="com.mybatisstudy.pojo.PageQuery">
        select * from user limit #{startIndex},#{pageSize}
    </select>
Copier après la connexion

Il convient également de noter ici que le nom du paramètre doit être cohérent avec le nom de la variable membre de la classe POJO personnalisée, sinon une erreur sera être signalé #🎜🎜 #

4. Nouvelle méthode de test
// 测试分页查询方法 -- POJO传参
    @Test
    public void testFindPage2(){
        PageQuery pageQuery = new PageQuery(2,3);
        List<User> users = userMapper.findPage2(pageQuery);
        users.forEach(System.out::println);
    }
Copier après la connexion

5. 🎜##🎜 🎜#IV. Map passant les paramètres

Si vous ne souhaitez pas personnaliser POJO, vous pouvez utiliser Map comme support pour passer les paramètres lors de la liaison des paramètres dans les instructions SQL. , utilisez la clé de la carte comme nom de paramètre Can. Cette méthode est recommandée

1. Méthode d'interface de couche de persistance

/**
     * 分页查询 -- Map传参
     * @param Map
     * @return
     */
    List<User> findPage3(Map<String,Object> params);
Copier après la connexion

2. Nouvelle balise pour le fichier de cartographie UserMapper.xml
<!-- 分页查询-Map传参 -->
    <select id="findPage3" resultType="com.mybatisstudy.pojo.User" parameterType="map">
        select * from user limit #{startIndex},#{pageSize}
    </select>
Copier après la connexion

Il faut également noter ici que le nombre de paramètres doit être cohérent avec le numéro de votre collection de cartes, et le nom du paramètre doit être cohérent avec le nom de la clé dans la collection de cartes, sinon un une erreur sera signalée #🎜🎜 #

Quelles sont les méthodes de transmission de paramètres pour la requête de pagination Mybatis en Java ? 3. Nouvelle méthode de test

// 测试分页查询方法 -- 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);
    }
Copier après la connexion

4.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:yisu.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal