oracle+mybatis-plus+springboot实现分页查询的实例

今天蠢了一上午才弄出这玩意,话不多说上代码!

1、建一个配置类

package com.sie.demo.config;

import com.baomidou.mybatisplus.annotation.DbType;
import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor;
import com.baomidou.mybatisplus.extension.plugins.PaginationInterceptor;
import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor;
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

/**
 * @author liaozhifeng
 * @date 2021/7/31 11:14
 * @Version 1.0
 */
@Configuration
@ConditionalOnClass(value = {PaginationInterceptor.class})
public class MybatisPlusConfig {

    // 最新版
    @Bean
    public MybatisPlusInterceptor mybatisPlusInterceptor() {
        MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
//        数据库的配置DbType.ORACLE 根据自己的数据库选择
        interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.ORACLE));
        return interceptor;
    }
}

2、service层的代码

package com.sie.demo.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.sie.demo.entity.Users;
import com.sie.demo.entity.vo.PageUserVo;
import com.sie.demo.mapper.UserMapper;
import com.sie.demo.service.UserService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import org.springframework.util.DigestUtils;

import javax.annotation.Resource;

import javax.servlet.http.HttpSession;
import java.util.List;

/**
 * @author liaozhifeng
 * @date 2021/7/27 14:03
 * @Version 1.0
 */
@Service
@Slf4j
public class UserServiceImpl extends ServiceImpl<UserMapper, Users> implements UserService {
    @Resource
    UserMapper userMapper;

    /**
     * 分页查询用户
     * @param currentPage
     * @param pageSize
     * @return
     */
    @Override
    public PageUserVo selectAll(long currentPage, long pageSize) {
        IPage<Users> userPage = new Page<>(currentPage, pageSize);//参数一是当前页,参数二是每页个数
        IPage<Users> iPage = userMapper.selectPage(userPage, null);
        List<Users> list = iPage.getRecords();
        Long total = iPage.getTotal();
        PageUserVo pageUserVo = new PageUserVo(list, total);
        return pageUserVo;
    }
}

3、controller层 RetResult是我自己定义的一个统一返回的泛型对象

package com.sie.demo.controller;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.conditions.query.QueryChainWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.sie.demo.entity.RetCode;
import com.sie.demo.entity.RetResponse;
import com.sie.demo.entity.RetResult;
import com.sie.demo.entity.Users;

import com.sie.demo.entity.vo.PageUserVo;
import com.sie.demo.service.impl.UserServiceImpl;
import com.sie.demo.util.TokenUtil;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;

import javax.annotation.Resource;
import javax.servlet.http.HttpSession;
import java.util.List;

@Controller
@RestController
@RequestMapping("user")
@Slf4j
public class UserController {
    @Autowired
    UserServiceImpl userService;

    /**
     *
     *
     * @param currentPage
     * @param pageSize
     * @return
     */
    @GetMapping("selectAll")
    public RetResult<PageUserVo> selectAll(long currentPage,  long pageSize) {
        log.info(currentPage+pageSize+"=========================");
        PageUserVo pageUserVo  = userService.selectAll(currentPage,pageSize);
        return RetResponse.makeOKRsp(pageUserVo);
    }
}

到此这篇关于oracle+mybatis-plus+springboot实现分页查询的实例的文章就介绍到这了,更多相关 mybatis-plus springboot分页查询内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • springboot整合mybatis-plus实现多表分页查询的示例代码

    1.新建一个springboot工程 2.需要导入mybatis和mybatis-plus的依赖文件 <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>3.1.1</version> </dependency> <dependency> &l

  • springboot整合mybatis-plus 实现分页查询功能

    建一个config类 @Configuration public class MybatisPlusConfig { @Bean public PaginationInterceptor paginationInterceptor(){ return new PaginationInterceptor(); } } 编写controller post /article/search/{page}/{size} @PostMapping("search/{page}/{size}") p

  • oracle+mybatis-plus+springboot实现分页查询的实例

    今天蠢了一上午才弄出这玩意,话不多说上代码! 1.建一个配置类 package com.sie.demo.config; import com.baomidou.mybatisplus.annotation.DbType; import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor; import com.baomidou.mybatisplus.extension.plugins.PaginationInte

  • Oracle使用MyBatis中RowBounds实现分页查询功能

    Oracle中分页查询因为存在伪列rownum,sql语句写起来较为复杂,现在介绍一种通过使用MyBatis中的RowBounds进行分页查询,非常方便. 使用MyBatis中的RowBounds进行分页查询时,不需要在 sql 语句中写 offset,limit,mybatis 会自动拼接 分页sql ,添加 offset,limit,实现自动分页. 需要前台传递参数currentPage和pageSize两个参数,分别是当前页和每页数量,controller层把参数传递给service层即可

  • SpringBoot+JPA 分页查询指定列并返回指定实体方式

    目录 SpringBoot+JPA分页查询指定列并返回指定实体 SpringBoot JPA实现自定义语句分页查询 SpringBoot+JPA分页查询指定列并返回指定实体 用习惯Mybatis,没用过jpa 真是各种踩坑了 脑壳疼,一个分页弄老半天,原来就一句话的事情,唉 先来说说正常的JPA如何操作 实体类对应表来创建,举个例子 @Entity @Table(name = "td_user") public class TdUser extends BaseModel { priv

  • SpringBoot+JPA 分页查询指定列并返回指定实体方式

    目录 SpringBoot JPA分页查询指定列并返回指定实体 实体类对应表来创建,举个例子 SpringBoot JPA实现自定义语句分页查询 1.JPA持久层 InvoiceRepository.java 2.服务层 SpringBoot JPA分页查询指定列并返回指定实体 用习惯Mybatis,没用过jpa 真是各种踩坑了 脑壳疼,一个分页弄老半天,原来就一句话的事情,唉 先来说说正常的JPA如何操作 实体类对应表来创建,举个例子 @Entity @Table(name = "td_use

  • Springboot 手动分页查询分批批量插入数据的实现流程

    目录 前言 业务场景是什么? 正文 前言 业务场景是什么? 就是数据库的一批数据,量不少,需要执行同步插入到别的地方. 简单点肯定是一次性查出来,然后循环一个个插入,完事. 考虑点: ① 数据量大,一次性查出来操作,很爆炸. ② 循环里面一次一次地去插入,如果非业务场景必要,基本是不会在循环里面使用sql操作的. 所以该篇作为抛砖引玉(还有很多需要考虑的点),给出一种解决上面场景的代码编写方案, 手动分页,查询后批量插入. 正文 实现的流程简图: 看看最终实现的效果,通过代码日志记录了这个实现后

  • Oracle分页查询的实例详解

    Oracle分页查询的实例详解 1.Oracle分页查询: SELECT * FROM ( SELECT A.*, ROWNUM RN FROM (SELECT * FROM tab) A WHERE ROWNUM <= 40 ) WHERE RN >= 21; 这个分页比下面的执行时间少,效率高. 2. select * from (select c.*,rownum rn from tab c) where rn between 21 and 40 对比这两种写法,绝大多数的情况下,第一个

  • SpringBoot Jpa分页查询配置方式解析

    这篇文章主要介绍了SpringBoot Jpa分页查询配置方式解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 这是已经被废弃的接口 Sort sort = new Sort(Sort.Direction.DESC,"bean类中字段"); //创建时间降序排序 Pageable pageable = new PageRequest(pageNumber,pageSize,sort); 上面的用法在最新的SpringBoot中已经不

  • 解决mybatis plus 一对多分页查询问题

    最近用mybatis plus做项目,单表的增删改查都正常,做到 1对多表的分页时,用resultMap返回的时候发现返回的记录和总数对不上 返回的记录是 一 表的,二返回的总数是 多 表 查了一下,这个或者是PLUS的bug 大概的解决办法如下图:用collection,传参用column,我这里用了一个小技巧, 把外面传入的参数,作为主表的column传入到从表. 这里没找到其他方法,有其他方法可以评论告诉我 补充知识:解决Mybatis-plus利用collection查询一对多分页数据的

  • ssm实现分页查询的实例

    ssm整合实现分页查询 一.通过limit查询语句实现分页,并展示 1.mapper.xml配置 <select id="selectUsersByPage" parameterType="int" resultMap="UserMap"> SELECT * number from user limit #{page},10 </select> 查询user表,从第page项开始,每次返回10条数据 2.index.jsp

  • 使用ElementUI写一个前端分页查询的实例

    目录 前言 前端分页 查询 写在最后 前言 一般我们在做项目的时候,都是通过调用后台接口去做增删改查,但是也有例外,有些某些特定场景下,会让前端去做好增删改查. 那么我们今天就来做一下这个需求. 使用的框架是Vue,UI框架是使用率很高的ElementUI. 那么我们开干吧. 前端分页 假定我们的数据是通过点击一个添加按钮,弹出一个添加弹窗,输入好数据后,点击确定按钮,把数据保存到表格中去. 那么就是这样的 { data () { return { page: { pageOffset: 1,

随机推荐