Maison >Java >javaDidacticiel >Quelles sont les méthodes de transmission de paramètres pour la requête de pagination Mybatis en Java ?
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é
/** * 分页查询 -- 顺序传参 * @param startIndex 开始索引 * @param pageSize 每页条数 * @return */ List<User> findPage(int startIndex,int pageSize);
<!-- 分页查询-顺序传参 --> <select id="findPage" resultType="com.mybatisstudy.pojo.User"> select * from user limit #{param1},#{param2} </select>
3. Nouvelle méthode de testIci, j'ai découvert que je n'avais pas besoin de définir le type de paramètre #🎜🎜 #
// 测试分页查询方法 -- 顺序传参 @Test public void testFindPage(){ List<User> users = userMapper.findPage(0,3); users.forEach(System.out::println); }
2. Passage du paramètre @param
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);
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传参 --> <select id="findPage1" resultType="com.mybatisstudy.pojo.User"> select * from user limit #{startIndex},#{pageSize} </select>
// 测试分页查询方法 -- @param传参 @Test public void testFindPage1(){ List<User> users = userMapper.findPage1(3,3); users.forEach(System.out::println); }
4. Résultats d'exécution3. 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.
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; } }
/** * 分页查询 -- POJO传参 * @param PageQuery * @return */ List<User> findPage2(PageQuery pageQuery);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>
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); }
1. Méthode d'interface de couche de persistance
/** * 分页查询 -- Map传参 * @param Map * @return */ List<User> findPage3(Map<String,Object> params);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>
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); }
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!