java mybatis分页查询语句_mybatis分页查询的实现(一)[通俗易懂]

java mybatis分页查询语句_mybatis分页查询的实现(一)[通俗易懂]一、总结了mybatis中五种不同实现分页查询的方法UserMapper.java接口文件publicinterfaceUserMapper{//分页查询publicListselectForPage1(intstartIndex,intpageSize);publicListselectForPage2(Mapmap);publicIntegerselectCount()…

大家好,又见面了,我是你们的朋友全栈君。

一、总结了mybatis中五种不同实现分页查询的方法

UserMapper.java接口文件

public interface UserMapper {

//分页查询

public List selectForPage1(int startIndex,int pageSize);

public List selectForPage2(Map map);

public Integer selectCount();

public List selectForPage3(PageBean pageBean);

//分页加模糊查询

public Integer selectCount2(String keywords);

public List selectForPage4(Map map);

}

工具类PageBean.java

public class PageBean {

private Integer currentPage;

private Integer startIndex;

private Integer pageSize=5;

private Integer totalCount;

private Integer totalPage;

public Integer getCurrentPage() {

return currentPage;

}

public void setCurrentPage(Integer currentPage) {

this.currentPage = currentPage;

this.startIndex=(this.currentPage-1)*this.pageSize;

}

public Integer getPageSize() {

return pageSize;

}

public void setPageSize(Integer pageSize) {

this.pageSize = pageSize;

}

public Integer getTotalCount() {

return totalCount;

}

public void setTotalCount(Integer totalCount) {

this.totalCount = totalCount;

//计算总页数

this.totalPage=(int)Math.ceil((this.totalCount*1.0/this.pageSize));

}

public Integer getTotalPage() {

return totalPage;

}

public void setTotalPage(Integer totalPage) {

this.totalPage = totalPage;

}

public Integer getStartIndex() {

return startIndex;

}

public void setStartIndex(Integer startIndex) {

this.startIndex = startIndex;

}

}

UserMapper.xml文件

其中查询5是模糊加分页查询语句

/p>

PUBLIC “-//mybatis.org//DTD Mapper 3.0//EN”

“http://mybatis.org/dtd/mybatis-3-mapper.dtd”>

select * from user limit #{param1},#{param2}

select * from user limit #{startIndex},#{pageSize}

select * from user

select count(*) from user

select * from user limit #{startIndex},#{pageSize}

select * from user

where name like “%”#{keywords}”%” or address like “%”#{keywords}”%”

limit #{startIndex},#{pageSize}

select count(*) from user where name like “%”#{value}”%” or address like “%”#{value}”%”

测试test

其中方法6是模糊加分页查询测试

public class myTest {

SqlSession session = MyBatisUtils.openSession();

UserMapper userMapper = session.getMapper(UserMapper.class);

@Test

public void selectForPage1() {

int currentPage=1;

int pageSize=5;

List selectForPage = userMapper.selectForPage1((currentPage-1)*pageSize, pageSize);

for (User user : selectForPage) {

System.out.println(user);

}

MyBatisUtils.closeSession(session);

}

@Test

public void selectForPage2() {

int currentPage=1;

int pageSize=5;

Map map=new HashMap<>();

map.put(“startIndex”, (currentPage-1)*pageSize);

map.put(“pageSize”, pageSize);

List selectForPage = userMapper.selectForPage2(map);

for (User user : selectForPage) {

System.out.println(user);

}

MyBatisUtils.closeSession(session);

}

@Test

public void selectForPage3() {

int currentPage=1;

int pageSize=5;

/**

* 参数1:开始条 偏移量,下标

* 参数2:参数总条数

*/

RowBounds rowBounds = new RowBounds((currentPage-1)*pageSize, pageSize);

//使用mybatis里面提供的api去写的

List list = session.selectList(“com.gx.mapper.UserMapper.selectAll”, null, rowBounds);

for (User user : list) {

System.out.println(user);

}

MyBatisUtils.closeSession(session);

}

@Test

public void selectForPage4() {

Integer count = userMapper.selectCount();

System.out.println(count);

int currentPage=1;

int pageSize=5;

Map map=new HashMap<>();

map.put(“startIndex”, (currentPage-1)*pageSize);

map.put(“pageSize”, pageSize);

List list = userMapper.selectForPage2(map);

for (User user : list) {

System.out.println(user);

}

System.out.println(“当前第”+currentPage+”页,共”+count+”条”);

MyBatisUtils.closeSession(session);

}

@Test

public void selectForPage5() {

PageBean bean = new PageBean();

bean.setCurrentPage(1);

bean.setPageSize(5);

//查询总条数

Integer count = userMapper.selectCount();

//放到pageBean

bean.setTotalCount(count);

List list = userMapper.selectForPage3(bean);

for (User user : list) {

System.out.println(user);

}

System.out.println(“当前第”+bean.getCurrentPage()+”页,共”+count+”条”);

MyBatisUtils.closeSession(session);

}

@Test

public void selectForPage6() {

String keywords=”云6″;

PageBean bean = new PageBean();

bean.setCurrentPage(1);

bean.setPageSize(5);

//查询总条数

Integer count = userMapper.selectCount2(keywords);

//放到pageBean

bean.setTotalCount(count);

Map map = new HashMap<>();

map.put(“startIndex”, bean.getStartIndex());

map.put(“pageSize”, bean.getPageSize());

map.put(“keywords”, keywords);

List list = userMapper.selectForPage4(map);

for (User user : list) {

System.out.println(user);

}

System.out.println(“当前第”+bean.getCurrentPage()+”页,共”+count+”条”);

MyBatisUtils.closeSession(session);

}

}

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/137118.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 操作系统概念第六章部分作业题答案

    操作系统概念第六章部分作业题答案题目一:如果将peterson算法中的flag[i]=true与turn=j两条语句交换顺序,会导致求解临界区问题所需三个要求(互斥、有空让进、有限等待)中的哪些要求得不到满足?请举例并分析说明得不到满足的情况解答:假设两个进程i和j:进程i的进入区代码是这样的flag[i]=TRUE;turn=j;while(flag[j]==TRUE&&…

    2022年7月14日
    14
  • 守护线程是什么_守护线程什么时候结束

    守护线程是什么_守护线程什么时候结束守护线程是什么?Java线程分为用户线程和守护线程。守护线程是程序运行的时候在后台提供一种通用服务的线程。所有用户线程停止,进程会停掉所有守护线程,退出程序。Java中把线程设置为守护线程的方法:在start线程之前调用线程的setDaemon(true)方法。注意:setDaemon(true)必须在start()之前设置,否则会抛出IllegalThrea…

    2022年10月15日
    3
  • Kafka入门经典教程_kafka菜鸟教程

    Kafka入门经典教程_kafka菜鸟教程转自:https://blog.csdn.net/yuan_xw/article/details/512109541Kafka入门教程1.1消息队列(MessageQueue)MessageQueue消息传送系统提供传送服务。消息传送依赖于大量支持组件,这些组件负责处理连接服务、消息的路由和传送、持久性、安全性以及日志记录。消息服务器可以使用一个或多个代理实例。J…

    2022年10月16日
    2
  • 大数据舆情监测与分析_大数据分析系统架构

    大数据舆情监测与分析_大数据分析系统架构前言互联网的飞速发展促进了很多新媒体的发展,不论是知名的大V,明星还是围观群众都可以通过手机在微博,朋友圈或者点评网站上发表状态,分享自己的所见所想,使得“人人都有了麦克风”。不论是热点新闻还是娱乐八卦,传播速度远超我们的想象。可以在短短数分钟内,有数万计转发,数百万的阅读。如此海量的信息可以得到爆炸式的传播,如何能够实时的把握民情并作出对应的处理对很多企业来说都是至关重要的。大数据时代,除了…

    2022年9月20日
    3
  • C#修改connectionStrings的方法

    C#修改connectionStrings的方法读取protectedvoidPage_Load(objectsender,EventArgse){CheckLoginMyChk=newCheckLogin();title.InnerHtml=”<b>数据库连接配置</b>”;if(!IsP…

    2022年5月11日
    34
  • vue封装使用公共组件_vue组件封装思路

    vue封装使用公共组件_vue组件封装思路Vue组件的三要素1.props参数2.slot定制插槽3.event自定义事件基本组件开发创建一个.vue文件,其中包含template、script以及style:<template><divclass=”headComponent”>{{{msg}}</div></template><script>exportdefault{props:[‘data’,’type’],

    2022年9月23日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号