Springboot中MyBatisplus使用IPage和Page分页

一、需求:实现Springboot中MyBatisplus使用IPage和Page分页

二、技术:MyBatisplus的IPage和Page

三、实现

1、代码结构

2、代码详情

(1)Controller

package com.xkcoding.rbac.security.controller;

import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.Map;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.xkcoding.rbac.security.service.InterService;

@Slf4j
@RestController
@RequestMapping("/inter")
public class InterController {
	@Autowired
	private InterService interService;

	@GetMapping("/test")
	public IPage<Map> test() {
		Integer currentPage = 1; //当前页数:显示第一页数据
		Integer pageSize = 2;    //每页显示多少:每页显示2条数据
		Page<Map> page = new Page<Map>(currentPage, pageSize);
		IPage<Map> findList = interService.findlistpage(page);
		return findList;
	}
}

(2)Service

package com.xkcoding.rbac.security.service;

import java.util.Map;
import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.xkcoding.rbac.security.dao.InterDao;
import org.springframework.beans.factory.annotation.Autowired;
import lombok.extern.slf4j.Slf4j;

@Slf4j
@Service
public class InterService {
	@Autowired
	private InterDao interDao;

	public IPage<Map> findlistpage(Page<Map> page) {
		return interDao.selectMapsPage(page, null);
	}
}

(3)Dao

package com.xkcoding.rbac.security.dao;

import java.util.List;
import java.util.Map;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.xkcoding.rbac.security.entity.Permission;

public interface InterDao extends BaseMapper<Permission> {
	IPage<Map> selectMapsPage(Page<Map> page, QueryWrapper<List<Map<String, Object>>> wrapper);
}

(4)XML

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http#{//mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.xkcoding.rbac.security.dao.InterDao">

	<select id="selectMapsPage" resultType="java.util.Map" parameterType="java.util.Map">
		SELECT * FROM INTER_COLLECTION
	</select>
	
</mapper>

(5)实体类

package com.xkcoding.rbac.security.entity;

import lombok.Data;

@Data
public class Inter {
    private String id;

    private String interName;
    
    private String mode;

    private String selectStatement;

    private String insertStatement;
    
    private String updateStatement;

    private String interEnable;

    private String interParam;

    private String interType;
    
    private String tableName;
}

3、运行结果

以上用到的 lombok 注解:

@Data:注解在类上;提供类所有属性的 getting 和 setting 方法,此外还提供了equals、canEqual、hashCode、toString 方法
@Slf4j:注解在类上;为类提供一个 属性名为log 的 log4j 日志对象

 

  • 28
    点赞
  • 119
    收藏
    觉得还不错? 一键收藏
  • 11
    评论
在 Spring Boot 使用 MybatisPlus 实现模糊查询并分页,可以按照如下步骤: 1. 在 pom.xml 文件添加 MybatisPlus 的依赖: ```xml <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>${mybatis-plus.version}</version> </dependency> ``` 2. 在 application.properties 文件添加 MybatisPlus 的配置: ```properties # MybatisPlus 配置 mybatis-plus.mapper-locations=classpath*:mapper/*.xml mybatis-plus.type-aliases-package=com.example.entity ``` 3. 创建一个 MybatisPlus 的配置类 MybatisPlusConfig,并开启分页功能: ```java @Configuration @MapperScan("com.example.mapper") public class MybatisPlusConfig { @Bean public PaginationInterceptor paginationInterceptor() { PaginationInterceptor paginationInterceptor = new PaginationInterceptor(); return paginationInterceptor; } } ``` 4. 在 Mapper 接口定义一个分页查询方法,如下所示: ```java public interface UserMapper extends BaseMapper<User> { IPage<User> selectUserPage(Page<User> page, @Param("name") String name); } ``` 其,`Page` 是 MybatisPlus 提供的分页对象,`@Param("name")` 表示传入的参数名称是 `name`。 5. 在 Mapper.xml 文件实现分页查询方法: ```xml <select id="selectUserPage" resultType="com.example.entity.User"> select * from user where name like concat('%', #{name}, '%') order by id desc </select> ``` 其,`concat` 函数用于拼接字符串,`#{name}` 表示传入的参数值是 `name`。 6. 在 Service 层调用分页查询方法: ```java @Service public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements UserService { @Override public IPage<User> selectUserPage(Page<User> page, String name) { return baseMapper.selectUserPage(page, name); } } ``` 其,`baseMapper` 是 MybatisPlus 提供的基础 Mapper 类,可以直接调用 Mapper 接口定义的方法。 7. 最后,在 Controller 层调用 Service 层分页查询方法,并将查询结果返回给前端: ```java @RestController @RequestMapping("/user") public class UserController { @Autowired private UserService userService; @GetMapping("/list") public IPage<User> selectUserPage(Page<User> page, String name) { return userService.selectUserPage(page, name); } } ``` 以上就是在 Spring Boot 使用 MybatisPlus 实现模糊查询并分页的步骤。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值