MybatisPlus+Spring Boot3 分页查询实现

news2024/10/22 23:42:39

目录

导入依赖

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

MybatisConfig配置文件

创建数据库对应的实体类

创建mapper层接口

在service包下创建xxxService接口

controller层创建XXXController类

完成分页查询


导入依赖

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

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

/*
 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代理对象,并添加分页插件到该代理对象。

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;
    }
}

创建数据库对应的实体类

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表的数据库接口

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接口

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包下创建具体的业务层逻辑处理实现类

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类

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));
    }

}

完成分页查询

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2213462.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

时隔11年,再次被纳入标普500指数,戴尔科技股票是否该买入?

猛兽财经核心观点&#xff1a; &#xff08;1&#xff09;9月24日&#xff0c;戴尔科技时隔11年后再次被纳入了标普500指数。 &#xff08;2&#xff09;华尔街分析师普遍很看好戴尔科技&#xff0c;并强调了戴尔科技在人工智能服务器和强劲的收入增长。 &#xff08;3&#xf…

枚举在Java体系中的作用

1. 枚举 枚举是在JDK1.5以后引入的。主要用途是&#xff1a;将一组常量组织起来&#xff0c;在这之前表示一组常量通常使用定义常量的方式&#xff1a; //用public static final修饰常量 public static final int RED 1; public static final int GREEN 2; public static f…

深度学习-24-基于keras的十大经典算法之残差网络ResNet

文章目录 1 残差网络(ResNet)1.1 ResNet简介1.2 ResNet结构2 模型应用2.1 加载数据2.2 构建模型SimpleResNet2.2.1 simple_resnet_block2.2.2 SimpleResNet2.2.3 实例化模型2.2.4 模型训练2.2.5 模型预测2.3 构建模型ResNet182.3.1 residual_block2.3.2 ResNet182.3.3 训练模型…

Redis高并发缓存设计问题与性能优化

1、缓存设计典型问题 1.1、缓存穿透 缓存穿透是指查询一个根本不存在的数据&#xff0c;缓存层和存储层都不会命中&#xff0c;通常出于容错的考虑&#xff0c;如果从存储层查不到数据则不写入缓存层。 缓存穿透将导致不存在的数据每次请求都要到存储层去查询&#xff0c;失…

vue3 Invalid value type passed to callWithAsyncErrorHandling()

vue3 提示警告。页面内点击按钮无响应 原因&#xff1a; <el-form :model"questionPage.queryParam" ref"queryForm" :inline"true"> ... <el-button type"primary" plain click"queryForm">查询</el-butto…

热门超声波清洗机有哪些?双十一适合学生党的清洗机推荐!

十一月十一号的双十一马上就快要到了&#xff0c;在这个一年一度的购物狂欢节中&#xff0c;不少人都期待着能够以优惠的价格购买到心仪的商品。超声波清洗机作为近年来备受关注的家用电器之一&#xff0c;以其清洁效果好、操作简便、价格亲民等特点&#xff0c;成为了大家双十…

leetcode二叉树(五)-二叉树层序遍历

题目 102.二叉树的层序遍历 给你二叉树的根节点 root &#xff0c;返回其节点值的 层序遍历 。 &#xff08;即逐层地&#xff0c;从左到右访问所有节点&#xff09;。 示例 1&#xff1a; 输入&#xff1a;root [3,9,20,null,null,15,7] 输出&#xff1a;[[3],[9,20],[15,7…

imx6ull-正点原子阿尔法-uboot-v2.4网络驱动修改

1 修改网络 PHY 地址,修改 PHY 驱动 /*[c] 1 修改网络PHY地址,修改PHY驱动*/ /******************************************************************************/ #if (CONFIG_FEC_ENET_DEV 0) #define IMX_FEC_BASE ENET_BASE_ADDR #define CONFIG_FEC_MXC_PHYADDR …

Electron-(一)创建桌面应用

一、概述 本文通过核心步骤介绍&#xff0c;形成使用Electron进行桌面应用创建的概述性内容。 在当今的软件开发领域&#xff0c;Electron 作为一款强大的工具&#xff0c;为开发者提供了一种便捷的方式来创建跨平台的桌面应用。本文将通过详细介绍核心步骤&#xff0c;带您领…

记一次有趣的发现-绕过堡垒机访问限制

前言 在某一次对设备运维管理的时候&#xff0c;发现的某安全大厂堡垒机设备存在绕过访问限制的问题&#xff0c;可以直接以低权限用户访问多个受控系统&#xff0c;此次发现是纯粹好奇心驱使下做的一个小测试压根没用任何工具。因为涉及到了很多设备和个人信息&#xff0c;所以…

AI大模型引领智慧城市:11个行业应用场景全解析

AI大模型在智慧城市11个行业的应用场景‍‍‍ 人工智能是当今科技领域最前沿的课题&#xff0c;更是新一轮科技革命的重要代表之一。从AlphaGo Zero通过自我学习碾压“AI前辈”AlphaGo&#xff0c;到百度智能无人汽车成功上路、苹果手机开启新的刷脸认证方式……而最近&#x…

老师发期中成绩小程序-易查分一键发布省事~

老师注意&#xff0c;本学期的期中考试即将拉开帷幕。考试结束后&#xff0c;成绩的发布往往是我们觉得最繁琐耗时的工作。逐一私信每个学生家长&#xff0c;告知他们的考试情况。使用我要向老师们推荐一个神器——易查分&#xff0c;能让老师一分钟完成期中成绩发布的工作。 易…

亿赛通与Ping32文档加密功能全面盘点,选择最适合的工具

在信息化迅速发展的今天&#xff0c;文档安全愈发成为企业关注的焦点。为了保护敏感数据不被非法访问或泄露&#xff0c;选择一款高效的文档加密工具至关重要。亿赛通与Ping32作为市场上备受认可的安全解决方案&#xff0c;各自提供了强大的文档加密功能。本文将对这两款软件的…

嘉立创EDA—51最小系统PCB

1&#xff0c;灵活使用 下边栏的库中可以搜索对应需要的型号&#xff0c;如51最小系统板 常用库中有常用的电容和电阻&#xff0c;以及排针等,熟悉一些常用快捷键的使用 设计完电路后可以选用折线进行分区&#xff0c;写好每个网络标号&#xff0c;以及添加一些文字说明 最后可…

C语言复习第5章 操作符

目录 关于和*的优先级问题进一步理解*(p)和*(p) 关于和*的优先级问题 首先明确一点 解引用*的优先级比自增低 区分如下代码: 1.*p:等价于*(p) 先对指针p解引用 再把指针p1(不会对野指针进行解引用操作) 2.*p:等价于*(p) 先把指针p1 再对指针p解引用(可能对野指针解引用 会报错…

前端布局与响应式设计综合指南(末)

​&#x1f308;个人主页&#xff1a;前端青山 &#x1f525;系列专栏&#xff1a;Css篇 &#x1f516;人终将被年少不可得之物困其一生 依旧青山,本期给大家带来Css篇专栏内容:前端布局与响应式设计综合指南(末) 目录 61、为什么要初始化CSS样式 62、CSS3 有哪些新特性 63、…

Windows环境下部署LobeChat及远程AI聊天操作指南

文章目录 前言1. LobeChat功能介绍2. 本地安装LobeChat3. 如何使用LobeChat工具4. 安装Cpolar内网穿透5. 实现公网访问LobeChat6. 固定LobeChat公网地址 前言 本文主要介绍如何在Windows系统电脑本地部署LobeChat&#xff0c;一款高颜值的开源AI大模型智能应用&#xff0c;并结…

Ubuntu终端配置

选择shell shell有很多&#xff0c;默认的是bash&#xff0c;一般就够用里&#xff0c;想要花里胡哨点就用zsh&#xff0c;还有最近比较火的fish 如果在刚开始安装完Ubuntu没有改shell&#xff0c;后面就不要改了。 安装的软件会设置环境变量&#xff0c;这些环境变量都是写入…

一个好的维权小程序应该是什么样的?

小程序如今为大家提供了很多的便利服务&#xff0c;且小程序的种类、功能是很多样的&#xff0c;那么对于一个好的维权小程序来说&#xff0c;其功能和设计应该紧紧围绕着用户的需求。 设计页面应该直观简单&#xff0c;功能布局让人一目了然&#xff1b;操作简单&#xff0c;…