MybatisPlus+Spring Boot3 分页查询实现

目录

导入依赖

[本文的house表 直接复制粘贴运行即可](#本文的house表 直接复制粘贴运行即可)

MybatisConfig配置文件

创建数据库对应的实体类

创建mapper层接口

在service包下创建xxxService接口

controller层创建XXXController类

完成分页查询


导入依赖

XML 复制代码
 <!--注意 SpringBoot3的依赖与Spring Boot2的MybatisPlus并不相同 错用会报错-->
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-spring-boot3-starter</artifactId>
            <version>3.5.5</version>
        </dependency>

本文的house表 直接复制粘贴运行即可

bash 复制代码
/*
 Navicat Premium Data Transfer

 Source Server         : localDB
 Source Server Type    : MySQL
 Source Server Version : 50743
 Source Host           : localhost:3306
 Source Schema         : property_management_db

 Target Server Type    : MySQL
 Target Server Version : 50743
 File Encoding         : 65001

 Date: 10/10/2024 16:05:51
*/

SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;

-- ----------------------------
-- Table structure for house
-- ----------------------------
DROP TABLE IF EXISTS `house`;
CREATE TABLE `house`  (
  `id` int(6) UNSIGNED ZEROFILL NOT NULL AUTO_INCREMENT COMMENT '自增主键',
  `parent_building` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '所属楼宇',
  `parent_unit` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '所属单元',
  `parent_floor` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '所属楼层',
  `house_num` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '房间号',
  `house_size` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '房间大小',
  `house_type` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '房间户型',
  `is_sold` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '0' COMMENT '是否售出:0未售出1已售出',
  `user_id` int(6) UNSIGNED ZEROFILL NULL DEFAULT NULL COMMENT '住户ID(实际住户)',
  `owner_id` int(6) UNSIGNED ZEROFILL NULL DEFAULT NULL COMMENT '业主ID(实际房屋拥有者)',
  PRIMARY KEY (`id`) USING BTREE,
  INDEX `fk_house_info_user_user`(`user_id`) USING BTREE,
  INDEX `fk_house_info_owner_user`(`owner_id`) USING BTREE,
  CONSTRAINT `fk_house_info_owner_user` FOREIGN KEY (`owner_id`) REFERENCES `user` (`id`) ON DELETE SET NULL ON UPDATE CASCADE,
  CONSTRAINT `fk_house_info_user_user` FOREIGN KEY (`user_id`) REFERENCES `user` (`id`) ON DELETE SET NULL ON UPDATE CASCADE
) ENGINE = InnoDB AUTO_INCREMENT = 127 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '住房详细信息 ' ROW_FORMAT = Dynamic;

-- ----------------------------
-- Records of house
-- ----------------------------
INSERT INTO `house` VALUES (000001, '1', '1', '1', '101', '120', '三室一厅一厨两卫', '0', NULL, NULL);
INSERT INTO `house` VALUES (000002, '1', '1', '1', '102', '120', '三室一厅一厨两卫', '0', NULL, NULL);
INSERT INTO `house` VALUES (000003, '1', '1', '2', '201', '120', '三室一厅一厨两卫', '0', NULL, NULL);
INSERT INTO `house` VALUES (000004, '1', '1', '2', '202', '120', '三室一厅一厨两卫', '0', NULL, NULL);
INSERT INTO `house` VALUES (000005, '1', '1', '3', '301', '120', '三室一厅一厨两卫', '0', NULL, NULL);
INSERT INTO `house` VALUES (000006, '1', '1', '3', '302', '120', '三室一厅一厨两卫', '0', NULL, NULL);
INSERT INTO `house` VALUES (000007, '1', '1', '4', '401', '120', '三室一厅一厨两卫', '0', NULL, NULL);
INSERT INTO `house` VALUES (000008, '1', '1', '4', '401', '120', '三室一厅一厨两卫', '0', NULL, NULL);
INSERT INTO `house` VALUES (000009, '1', '1', '5', '501', '120', '三室一厅一厨两卫', '0', NULL, NULL);
INSERT INTO `house` VALUES (000010, '1', '1', '5', '502', '120', '三室一厅一厨两卫', '0', NULL, NULL);
INSERT INTO `house` VALUES (000011, '1', '1', '6', '601', '120', '三室一厅一厨两卫', '0', NULL, NULL);
INSERT INTO `house` VALUES (000012, '1', '1', '6', '602', '120', '三室一厅一厨两卫', '0', NULL, NULL);
INSERT INTO `house` VALUES (000013, '1', '1', '7', '701', '120', '三室一厅一厨两卫', '0', NULL, NULL);
INSERT INTO `house` VALUES (000014, '1', '1', '7', '702', '120', '三室一厅一厨两卫', '0', NULL, NULL);
INSERT INTO `house` VALUES (000015, '1', '2', '1', '101', '120', '三室一厅一厨两卫', '0', NULL, NULL);
INSERT INTO `house` VALUES (000016, '1', '2', '1', '102', '120', '三室一厅一厨两卫', '0', NULL, NULL);
INSERT INTO `house` VALUES (000017, '1', '2', '2', '201', '120', '三室一厅一厨两卫', '0', NULL, NULL);
INSERT INTO `house` VALUES (000018, '1', '2', '2', '202', '120', '三室一厅一厨两卫', '0', NULL, NULL);
INSERT INTO `house` VALUES (000019, '1', '2', '3', '301', '120', '三室一厅一厨两卫', '0', NULL, NULL);
INSERT INTO `house` VALUES (000020, '1', '2', '3', '302', '120', '三室一厅一厨两卫', '0', NULL, NULL);
INSERT INTO `house` VALUES (000021, '1', '2', '4', '401', '120', '三室一厅一厨两卫', '0', NULL, NULL);
INSERT INTO `house` VALUES (000022, '1', '2', '4', '401', '120', '三室一厅一厨两卫', '0', NULL, NULL);
INSERT INTO `house` VALUES (000023, '1', '2', '5', '501', '120', '三室一厅一厨两卫', '0', NULL, NULL);
INSERT INTO `house` VALUES (000024, '1', '2', '5', '502', '120', '三室一厅一厨两卫', '0', NULL, NULL);
INSERT INTO `house` VALUES (000025, '1', '2', '6', '601', '120', '三室一厅一厨两卫', '0', NULL, NULL);
INSERT INTO `house` VALUES (000026, '1', '2', '6', '602', '120', '三室一厅一厨两卫', '0', NULL, NULL);
INSERT INTO `house` VALUES (000027, '1', '2', '7', '701', '120', '三室一厅一厨两卫', '0', NULL, NULL);
INSERT INTO `house` VALUES (000028, '1', '2', '7', '702', '120', '三室一厅一厨两卫', '0', NULL, NULL);
INSERT INTO `house` VALUES (000029, '1', '3', '1', '101', '120', '三室一厅一厨两卫', '0', NULL, NULL);
INSERT INTO `house` VALUES (000030, '1', '3', '1', '102', '120', '三室一厅一厨两卫', '0', NULL, NULL);
INSERT INTO `house` VALUES (000031, '1', '3', '2', '201', '120', '三室一厅一厨两卫', '0', NULL, NULL);
INSERT INTO `house` VALUES (000032, '1', '3', '2', '202', '120', '三室一厅一厨两卫', '0', NULL, NULL);
INSERT INTO `house` VALUES (000033, '1', '3', '3', '301', '120', '三室一厅一厨两卫', '0', NULL, NULL);
INSERT INTO `house` VALUES (000034, '1', '3', '3', '302', '120', '三室一厅一厨两卫', '0', NULL, NULL);
INSERT INTO `house` VALUES (000035, '1', '3', '4', '401', '120', '三室一厅一厨两卫', '0', NULL, NULL);
INSERT INTO `house` VALUES (000036, '1', '3', '4', '401', '120', '三室一厅一厨两卫', '0', NULL, NULL);
INSERT INTO `house` VALUES (000037, '1', '3', '5', '501', '120', '三室一厅一厨两卫', '0', NULL, NULL);
INSERT INTO `house` VALUES (000038, '1', '3', '5', '502', '120', '三室一厅一厨两卫', '0', NULL, NULL);
INSERT INTO `house` VALUES (000039, '1', '3', '6', '601', '120', '三室一厅一厨两卫', '0', NULL, NULL);
INSERT INTO `house` VALUES (000040, '1', '3', '6', '602', '120', '三室一厅一厨两卫', '0', NULL, NULL);
INSERT INTO `house` VALUES (000041, '1', '3', '7', '701', '120', '三室一厅一厨两卫', '0', NULL, NULL);
INSERT INTO `house` VALUES (000042, '1', '3', '7', '702', '120', '三室一厅一厨两卫', '0', NULL, NULL);
INSERT INTO `house` VALUES (000043, '2', '1', '1', '101', '120', '三室一厅一厨两卫', '0', NULL, NULL);
INSERT INTO `house` VALUES (000044, '2', '1', '1', '102', '120', '三室一厅一厨两卫', '0', NULL, NULL);
INSERT INTO `house` VALUES (000045, '2', '1', '2', '201', '120', '三室一厅一厨两卫', '0', NULL, NULL);
INSERT INTO `house` VALUES (000046, '2', '1', '2', '202', '120', '三室一厅一厨两卫', '0', NULL, NULL);
INSERT INTO `house` VALUES (000047, '2', '1', '3', '301', '120', '三室一厅一厨两卫', '0', NULL, NULL);
INSERT INTO `house` VALUES (000048, '2', '1', '3', '302', '120', '三室一厅一厨两卫', '0', NULL, NULL);
INSERT INTO `house` VALUES (000049, '2', '1', '4', '401', '120', '三室一厅一厨两卫', '0', NULL, NULL);
INSERT INTO `house` VALUES (000050, '2', '1', '4', '401', '120', '三室一厅一厨两卫', '0', NULL, NULL);
INSERT INTO `house` VALUES (000051, '2', '1', '5', '501', '120', '三室一厅一厨两卫', '0', NULL, NULL);
INSERT INTO `house` VALUES (000052, '2', '1', '5', '502', '120', '三室一厅一厨两卫', '0', NULL, NULL);
INSERT INTO `house` VALUES (000053, '2', '1', '6', '601', '120', '三室一厅一厨两卫', '0', NULL, NULL);
INSERT INTO `house` VALUES (000054, '2', '1', '6', '602', '120', '三室一厅一厨两卫', '0', NULL, NULL);
INSERT INTO `house` VALUES (000055, '2', '1', '7', '701', '120', '三室一厅一厨两卫', '0', NULL, NULL);
INSERT INTO `house` VALUES (000056, '2', '1', '7', '702', '120', '三室一厅一厨两卫', '0', NULL, NULL);
INSERT INTO `house` VALUES (000057, '2', '2', '1', '101', '120', '三室一厅一厨两卫', '0', NULL, NULL);
INSERT INTO `house` VALUES (000058, '2', '2', '1', '102', '120', '三室一厅一厨两卫', '0', NULL, NULL);
INSERT INTO `house` VALUES (000059, '2', '2', '2', '201', '120', '三室一厅一厨两卫', '0', NULL, NULL);
INSERT INTO `house` VALUES (000060, '2', '2', '2', '202', '120', '三室一厅一厨两卫', '0', NULL, NULL);
INSERT INTO `house` VALUES (000061, '2', '2', '3', '301', '120', '三室一厅一厨两卫', '0', NULL, NULL);
INSERT INTO `house` VALUES (000062, '2', '2', '3', '302', '120', '三室一厅一厨两卫', '0', NULL, NULL);
INSERT INTO `house` VALUES (000063, '2', '2', '4', '401', '120', '三室一厅一厨两卫', '0', NULL, NULL);
INSERT INTO `house` VALUES (000064, '2', '2', '4', '401', '120', '三室一厅一厨两卫', '0', NULL, NULL);
INSERT INTO `house` VALUES (000065, '2', '2', '5', '501', '120', '三室一厅一厨两卫', '0', NULL, NULL);
INSERT INTO `house` VALUES (000066, '2', '2', '5', '502', '120', '三室一厅一厨两卫', '0', NULL, NULL);
INSERT INTO `house` VALUES (000067, '2', '2', '6', '601', '120', '三室一厅一厨两卫', '0', NULL, NULL);
INSERT INTO `house` VALUES (000068, '2', '2', '6', '602', '120', '三室一厅一厨两卫', '0', NULL, NULL);
INSERT INTO `house` VALUES (000069, '2', '2', '7', '701', '120', '三室一厅一厨两卫', '0', NULL, NULL);
INSERT INTO `house` VALUES (000070, '2', '2', '7', '702', '120', '三室一厅一厨两卫', '0', NULL, NULL);
INSERT INTO `house` VALUES (000071, '2', '3', '1', '101', '120', '三室一厅一厨两卫', '0', NULL, NULL);
INSERT INTO `house` VALUES (000072, '2', '3', '1', '102', '120', '三室一厅一厨两卫', '0', NULL, NULL);
INSERT INTO `house` VALUES (000073, '2', '3', '2', '201', '120', '三室一厅一厨两卫', '0', NULL, NULL);
INSERT INTO `house` VALUES (000074, '2', '3', '2', '202', '120', '三室一厅一厨两卫', '0', NULL, NULL);
INSERT INTO `house` VALUES (000075, '2', '3', '3', '301', '120', '三室一厅一厨两卫', '0', NULL, NULL);
INSERT INTO `house` VALUES (000076, '2', '3', '3', '302', '120', '三室一厅一厨两卫', '0', NULL, NULL);
INSERT INTO `house` VALUES (000077, '2', '3', '4', '401', '120', '三室一厅一厨两卫', '0', NULL, NULL);
INSERT INTO `house` VALUES (000078, '2', '3', '4', '401', '120', '三室一厅一厨两卫', '0', NULL, NULL);
INSERT INTO `house` VALUES (000079, '2', '3', '5', '501', '120', '三室一厅一厨两卫', '0', NULL, NULL);
INSERT INTO `house` VALUES (000080, '2', '3', '5', '502', '120', '三室一厅一厨两卫', '0', NULL, NULL);
INSERT INTO `house` VALUES (000081, '2', '3', '6', '601', '120', '三室一厅一厨两卫', '0', NULL, NULL);
INSERT INTO `house` VALUES (000082, '2', '3', '6', '602', '120', '三室一厅一厨两卫', '0', NULL, NULL);
INSERT INTO `house` VALUES (000083, '2', '3', '7', '701', '120', '三室一厅一厨两卫', '0', NULL, NULL);
INSERT INTO `house` VALUES (000084, '2', '3', '7', '702', '120', '三室一厅一厨两卫', '0', NULL, NULL);
INSERT INTO `house` VALUES (000085, '3', '1', '1', '101', '120', '三室一厅一厨两卫', '0', NULL, NULL);
INSERT INTO `house` VALUES (000086, '3', '1', '1', '102', '120', '三室一厅一厨两卫', '0', NULL, NULL);
INSERT INTO `house` VALUES (000087, '3', '1', '2', '201', '120', '三室一厅一厨两卫', '0', NULL, NULL);
INSERT INTO `house` VALUES (000088, '3', '1', '2', '202', '120', '三室一厅一厨两卫', '0', NULL, NULL);
INSERT INTO `house` VALUES (000089, '3', '1', '3', '301', '120', '三室一厅一厨两卫', '0', NULL, NULL);
INSERT INTO `house` VALUES (000090, '3', '1', '3', '302', '120', '三室一厅一厨两卫', '0', NULL, NULL);
INSERT INTO `house` VALUES (000091, '3', '1', '4', '401', '120', '三室一厅一厨两卫', '0', NULL, NULL);
INSERT INTO `house` VALUES (000092, '3', '1', '4', '401', '120', '三室一厅一厨两卫', '0', NULL, NULL);
INSERT INTO `house` VALUES (000093, '3', '1', '5', '501', '120', '三室一厅一厨两卫', '0', NULL, NULL);
INSERT INTO `house` VALUES (000094, '3', '1', '5', '502', '120', '三室一厅一厨两卫', '0', NULL, NULL);
INSERT INTO `house` VALUES (000095, '3', '1', '6', '601', '120', '三室一厅一厨两卫', '0', NULL, NULL);
INSERT INTO `house` VALUES (000096, '3', '1', '6', '602', '120', '三室一厅一厨两卫', '0', NULL, NULL);
INSERT INTO `house` VALUES (000097, '3', '1', '7', '701', '120', '三室一厅一厨两卫', '0', NULL, NULL);
INSERT INTO `house` VALUES (000098, '3', '1', '7', '702', '120', '三室一厅一厨两卫', '0', NULL, NULL);
INSERT INTO `house` VALUES (000099, '3', '2', '1', '101', '120', '三室一厅一厨两卫', '0', NULL, NULL);
INSERT INTO `house` VALUES (000100, '3', '2', '1', '102', '120', '三室一厅一厨两卫', '0', NULL, NULL);
INSERT INTO `house` VALUES (000101, '3', '2', '2', '201', '120', '三室一厅一厨两卫', '0', NULL, NULL);
INSERT INTO `house` VALUES (000102, '3', '2', '2', '202', '120', '三室一厅一厨两卫', '0', NULL, NULL);
INSERT INTO `house` VALUES (000103, '3', '2', '3', '301', '120', '三室一厅一厨两卫', '0', NULL, NULL);
INSERT INTO `house` VALUES (000104, '3', '2', '3', '302', '120', '三室一厅一厨两卫', '0', NULL, NULL);
INSERT INTO `house` VALUES (000105, '3', '2', '4', '401', '120', '三室一厅一厨两卫', '0', NULL, NULL);
INSERT INTO `house` VALUES (000106, '3', '2', '4', '401', '120', '三室一厅一厨两卫', '0', NULL, NULL);
INSERT INTO `house` VALUES (000107, '3', '2', '5', '501', '120', '三室一厅一厨两卫', '0', NULL, NULL);
INSERT INTO `house` VALUES (000108, '3', '2', '5', '502', '120', '三室一厅一厨两卫', '0', NULL, NULL);
INSERT INTO `house` VALUES (000109, '3', '2', '6', '601', '120', '三室一厅一厨两卫', '0', NULL, NULL);
INSERT INTO `house` VALUES (000110, '3', '2', '6', '602', '120', '三室一厅一厨两卫', '0', NULL, NULL);
INSERT INTO `house` VALUES (000111, '3', '2', '7', '701', '120', '三室一厅一厨两卫', '0', NULL, NULL);
INSERT INTO `house` VALUES (000112, '3', '2', '7', '702', '120', '三室一厅一厨两卫', '0', NULL, NULL);
INSERT INTO `house` VALUES (000113, '3', '3', '1', '101', '120', '三室一厅一厨两卫', '0', NULL, NULL);
INSERT INTO `house` VALUES (000114, '3', '3', '1', '102', '120', '三室一厅一厨两卫', '0', NULL, NULL);
INSERT INTO `house` VALUES (000115, '3', '3', '2', '201', '120', '三室一厅一厨两卫', '0', NULL, NULL);
INSERT INTO `house` VALUES (000116, '3', '3', '2', '202', '120', '三室一厅一厨两卫', '0', NULL, NULL);
INSERT INTO `house` VALUES (000117, '3', '3', '3', '301', '120', '三室一厅一厨两卫', '0', NULL, NULL);
INSERT INTO `house` VALUES (000118, '3', '3', '3', '302', '120', '三室一厅一厨两卫', '0', NULL, NULL);
INSERT INTO `house` VALUES (000119, '3', '3', '4', '401', '120', '三室一厅一厨两卫', '0', NULL, NULL);
INSERT INTO `house` VALUES (000120, '3', '3', '4', '401', '120', '三室一厅一厨两卫', '0', NULL, NULL);
INSERT INTO `house` VALUES (000121, '3', '3', '5', '501', '120', '三室一厅一厨两卫', '0', NULL, NULL);
INSERT INTO `house` VALUES (000122, '3', '3', '5', '502', '120', '三室一厅一厨两卫', '0', NULL, NULL);
INSERT INTO `house` VALUES (000123, '3', '3', '6', '601', '120', '三室一厅一厨两卫', '0', NULL, NULL);
INSERT INTO `house` VALUES (000124, '3', '3', '6', '602', '120', '三室一厅一厨两卫', '0', NULL, NULL);
INSERT INTO `house` VALUES (000125, '3', '3', '7', '701', '120', '三室一厅一厨两卫', '0', NULL, NULL);
INSERT INTO `house` VALUES (000126, '3', '3', '7', '702', '120', '三室一厅一厨两卫', '0', NULL, NULL);

SET FOREIGN_KEY_CHECKS = 1;

MybatisConfig配置文件

添加MybatisPlusInterceptor代理对象,并添加分页插件到该代理对象。

java 复制代码
package com.xingdian.config;

import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor;
import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

@Configuration
public class MybatisConfig {


     /**
     * 为MyBatis Plus插件创建一个MybatisPlusInterceptor代理对象,
     * 并添加了分页插件(PaginationInnerInterceptor)到该代理对象中。这样,在应用中,
     * 只需要将MybatisPlusInterceptor对象注入到需要的地方,就可以轻松地启用MyBatis Plus插件的分页功能。
     */
    @Bean
    public MybatisPlusInterceptor paginationInterceptor(){
        //新建MybatisPlus拦截器
        MybatisPlusInterceptor mybatisPlusInterceptor = new MybatisPlusInterceptor();
        //新建分页拦截器paginationInnerInterceptor
        PaginationInnerInterceptor paginationInnerInterceptor = new PaginationInnerInterceptor();
        //设置分页拦截器的一些属性
        paginationInnerInterceptor.setOverflow(true);
        paginationInnerInterceptor.setMaxLimit(100L);
        //把分页拦截器添加到MybatisPlus拦截器中
        mybatisPlusInterceptor.addInnerInterceptor(paginationInnerInterceptor);
        //添加组件,大功告成!
        return mybatisPlusInterceptor;
    }
}

创建数据库对应的实体类

java 复制代码
package com.xingdian.pojo;

import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;

@Data
@TableName("house")
public class House {
    /**
     * 自增主键
     */
    private Integer id;

    /**
     * 所属楼宇
     */
    private String parentBuilding;

    /**
     * 所属单元
     */
    private String parentUnit;

    /**
     * 所属楼层
     */
    private String parentFloor;

    /**
     * 房间号
     */
    private String houseNum;

    /**
     * 房间大小
     */
    private String houseSize;

    /**
     * 房间户型
     */
    private String houseType;

    /**
     * 是否售出:0未售出1已售出
     */
    private String isSold;



    /**
     * 绑定的住户ID(已绑定也代表已售出)
     */
    private Integer userId;
    /**
     * 业主ID(如果售出则不可为空)
     */
    private String ownerId;

}

创建mapper层接口

在mapper包下创建操作user表的数据库接口

java 复制代码
package com.xingdian.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.xingdian.pojo.House;
import com.xingdian.pojo.User;
import org.apache.ibatis.annotations.Mapper;

@Mapper
public interface HouseMapper extends BaseMapper<House> {
}

在service包下创建xxxService接口

java 复制代码
package com.xingdian.service.impl;



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.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.xingdian.mapper.HouseMapper;
import com.xingdian.pojo.House;
import com.xingdian.service.IHouseService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

@Service
public class HouseService extends ServiceImpl<HouseMapper, House> implements IHouseService {

    @Autowired
    private HouseMapper houseMapper;

    public IPage<House> getDataByPage(int current,int size, House house){
        IPage<House> page = new Page<>(current,size);
        QueryWrapper<House> queryWrapper = new QueryWrapper<>();
        // 动态构建查询条件
        queryWrapper.lambda().eq(house.getParentBuilding()!=null, House::getParentBuilding,house.getParentBuilding())
                .eq(house.getParentUnit()!=null,House::getParentUnit,house.getParentUnit())
                .eq(house.getParentFloor()!=null,House::getParentFloor,house.getParentFloor())
                .eq(house.getHouseNum()!=null,House::getHouseNum,house.getHouseNum())
                .eq(house.getHouseSize()!=null,House::getHouseSize,house.getHouseSize())
                .eq(house.getHouseType()!=null,House::getHouseType,house.getHouseType())
                .eq(house.getIsSold()!=null,House::getIsSold,house.getIsSold());
        return  houseMapper.selectPage(page,queryWrapper);

    }
}

在impl包下创建具体的业务层逻辑处理实现类

java 复制代码
package com.xingdian.service.impl;

import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.xingdian.entity.User;
import com.xingdian.mapper.UserMapper;
import com.xingdian.service.IUserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

@Service
public class UserService extends ServiceImpl<UserMapper,User> implements IUserService {

    @Autowired
    private UserMapper userMapper;

    @Override
    public List<User> getAllUsers() {
        return userMapper.selectList(null);
    }

    @Override
    public User getUserById(int id) {
        return userMapper.selectById(id);
    }


}

controller层创建XXXController类

java 复制代码
package com.xingdian.controller;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.xingdian.enums.ResponseStatusEnum;
import com.xingdian.pojo.House;
import com.xingdian.pojo.User;
import com.xingdian.pojo.dto.ResponseDTO;
import com.xingdian.service.impl.HouseService;
import com.xingdian.service.impl.UserService;
import lombok.extern.log4j.Log4j2;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.web.bind.annotation.*;

@Log4j2
@RestController
@RequestMapping("user")
public class HouseController {

    private final HouseService houseService;

    public HouseController(HouseService houseService) {
        this.houseService = houseService;
    }


    /**
     * @param house 分页查询条件
     * @param page 当前页
     * @param rows 当前页的数据条数
     * @return
     */
    @GetMapping("getDataByPage")
    public ResponseDTO<IPage> getDataByPage(House house, int page, int rows) {
        if (house == null || page<=0 || rows<=0)
            return ResponseDTO.failure(ResponseStatusEnum.PARAM_IS_INVALID);
        //支支持其他属性的条件分页查询
        house.setId(null);
        house.setOwnerId(null);
        house.setUserId(null);

        return ResponseDTO.success(houseService.getDataByPage(page,rows,house));
    }

}

完成分页查询

相关推荐
LuckyLay1 分钟前
Spring学习笔记_27——@EnableLoadTimeWeaving
java·spring boot·spring
AskHarries1 小时前
Java字节码增强库ByteBuddy
java·后端
佳佳_1 小时前
Spring Boot 应用启动时打印配置类信息
spring boot·后端
程序媛小果2 小时前
基于java+SpringBoot+Vue的宠物咖啡馆平台设计与实现
java·vue.js·spring boot
许野平2 小时前
Rust: 利用 chrono 库实现日期和字符串互相转换
开发语言·后端·rust·字符串·转换·日期·chrono
BiteCode_咬一口代码3 小时前
信息泄露!默认密码的危害,记一次网络安全研究
后端
齐 飞4 小时前
MongoDB笔记01-概念与安装
前端·数据库·笔记·后端·mongodb
狂放不羁霸4 小时前
idea | 搭建 SpringBoot 项目之配置 Maven
spring boot·maven·intellij-idea
LunarCod4 小时前
WorkFlow源码剖析——Communicator之TCPServer(中)
后端·workflow·c/c++·网络框架·源码剖析·高性能高并发
计算机学长felix5 小时前
基于SpringBoot的“校园交友网站”的设计与实现(源码+数据库+文档+PPT)
数据库·spring boot·毕业设计·交友