这篇文章主要介绍了Java中mybatis分页查询的传参方式有哪些的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Java中Mybatis分页查询的传参方式有哪些文章都会有所收获,下面我们一起来看看吧。一、顺序传
这篇文章主要介绍了Java中mybatis分页查询的传参方式有哪些的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Java中Mybatis分页查询的传参方式有哪些文章都会有所收获,下面我们一起来看看吧。
sql中的参数使用arg0,arg1...或param1,param2...表示参数的顺序。此方法可读性较低,在开发中不建议使用。但是我这里测试的时候,参数可以随便定义的,并不一定按照上述的格式来定义
List<User> findPage(int startIndex,int pageSize);
<!-- 分页查询-顺序传参 --> <select id="findPage" resultType="com.mybatisstudy.pojo.User"> select * from user limit #{param1},#{param2} </select>
这里我发现不用定义参数类型类型也可以
// 测试分页查询方法 -- 顺序传参 @Test public void testFindPage(){ List<User> users = userMapper.findPage(0,3); users.forEach(System.out::println); }
由于这里的起始条数是从0开始,数据的id从1开始,所以,别惊讶
在接口方法的参数列表中通过@Param定义参数名称,在Sql语句中通过注解中所定义的参数名称指定参数位置。此方式参数比较直观的,推荐使用。
List<User> findPage1(@Param("startIndex")int startIndex,@Param("pageSize")int pageSize);
<!-- 分页查询-@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); }
自定义POJO类,该类的属性就是要传递的参数,在SQL语句中绑定参数时使用POJO的属性名作为参数名即可。此方式推荐使用。
由于这里我们需要两个参数,一个是查询开始条数,一个是每页有多少条数,所以这个pojo类只需要两个参数即可
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; }}
List<User> findPage2(PageQuery pageQuery);
<!-- 分页查询-POJO传参 --> <select id="findPage2" resultType="com.mybatisstudy.pojo.User" parameterType="com.mybatisstudy.pojo.PageQuery"> select * from user limit #{startIndex},#{pageSize} </select>
这里同样需要注意的是,参数名称要和自定义的POJO类的成员变量名要一致,否则同样会报错
// 测试分页查询方法 -- POJO传参 @Test public void testFindPage2(){ PageQuery pageQuery = new PageQuery(2,3); List<User> users = userMapper.findPage2(pageQuery); users.forEach(System.out::println); }
如果不想自定义POJO,可以使用Map作为传递参数的载体,在SQL语句中绑定参数时使用Map的Key作为参数名即可。此方法推荐使用
List<User> findPage3(Map<String,Object> params);
<!-- 分页查询-Map传参 --> <select id="findPage3" resultType="com.mybatisstudy.pojo.User" parameterType="map"> select * from user limit #{startIndex},#{pageSize} </select>
这里同样需要注意的是,参数个数要和你map集合的个数一致,并且参数名称要和map集合里面的key的名称要一致,否则同样报错
// 测试分页查询方法 -- 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); }
关于“Java中Mybatis分页查询的传参方式有哪些”这篇文章的内容就介绍到这里,感谢各位的阅读!相信大家对“Java中Mybatis分页查询的传参方式有哪些”知识都有一定的了解,大家如果还想学习更多知识,欢迎关注编程网精选频道。
--结束END--
本文标题: Java中Mybatis分页查询的传参方式有哪些
本文链接: https://lsjlt.com/news/354790.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
2024-05-24
2024-05-24
2024-05-24
2024-05-24
2024-05-24
2024-05-24
2024-05-24
2024-05-24
2024-05-24
2024-05-24
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0