mybatis 和 mybatis plus 分页的配置

package com.dmo.parkingview.config;

import com.baomidou.mybatisplus.extension.plugins.PaginationInterceptor;
import com.baomidou.mybatisplus.extension.plugins.pagination.optimize.JsqlParserCountOptimize;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;


/*
 * @Author jt
 * @Description //MybatisPlus 分页插件
 * @Date 2020/7/13
 **/
@Configuration
public class MybatisPlusConfig {
//下面是mybatisplus 分页的配置
    @Bean
    public PaginationInterceptor paginationInterceptor() {
        PaginationInterceptor paginationInterceptor = new PaginationInterceptor();
        // 设置请求的页面大于最大页后操作, true调回到首页,false 继续请求  默认false
        // paginationInterceptor.setOverflow(false);
        // 设置最大单页限制数量,默认 500 条,-1 不受限制
        // paginationInterceptor.setLimit(500);
        // 开启 count 的 join 优化,只针对部分 left join
        paginationInterceptor.setCountSqlParser(new JsqlParserCountOptimize(true));
        return paginationInterceptor;
    }
// 下面是mybatis 分页插件的配置
    @Bean
    public PageHelper pageHelper() {
        // 分页插件pageHelper
        PageHelper pageHelper = new PageHelper();
        Properties properties = new Properties();
        properties.setProperty("offsetAsPageNum", "true");
        properties.setProperty("rowBoundsWithCount", "true");
        //reasonable分页参数合理化,3.3.0以上版本可用,默认是false。
        // 启用合理化时,如果pageNum<1会查询第一页,如果pageNum>pages会查询最后一页;
        // 禁用合理化时,如果pageNum<1或pageNum>pages会返回空数据。
        properties.setProperty("reasonable", "false");
        properties.setProperty("helperDialect", "mysql");
        pageHelper.setProperties(properties);
        return pageHelper;
    }


    @Configuration
    @AutoConfigureAfter(MybatisPlusConfig.class)
    public static class MyBatisMapper {

        @Bean
        public MapperHelper mapperHelper() {
            //配置通用mappers
            MapperHelper mapperHelper = new MapperHelper();
            Properties properties = new Properties();
            properties.setProperty("mappers", "tk.mybatis.mapper.common.Mapper");
            properties.setProperty("notEmpty", "false");
            properties.setProperty("IDENTITY", "MYSQL");
            mapperHelper.setProperties(properties);
            return mapperHelper;
        }

    }
}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
MyBatis是一个优秀的持久层框架,而MyBatis-Plus是在MyBatis基础上进行了扩展和增强的框架。它们都提供了分页功能来方便处理大量数据的查询操作。 在MyBatis中实现分页可以通过使用插件或者自定义SQL语句来实现,而MyBatis-Plus分页,你可以按照以下步骤进行操作: 1. 在你的实体类中添加分页参数,例如`current`表示当前页码,`size`表示每页显示的记录数。 2. 在你的Mapper接口中继承`BaseMapper`接口,该接口提供了一些常用的CRUD方法,包括分页查询方法。 3. 在你的Service层中调用分页查询方法,传入分页参数和查询条件。 4. 在Controller层中接收分页结果,并返回给前端展示。 下面是一个示例代码: ```java // 实体类 public class User { private Long id; private String name; // 省略getter和setter方法 } // Mapper接口 public interface UserMapper extends BaseMapper<User> { // 省略其他方法 } // Service层 @Service public class UserService { @Autowired private UserMapper userMapper; public IPage<User> getUserList(int current, int size) { Page<User> page = new Page<>(current, size); QueryWrapper<User> queryWrapper = new QueryWrapper<>(); // 设置查询条件 // queryWrapper.eq("name", "张三"); return userMapper.selectPage(page, queryWrapper); } } // Controller层 @RestController public class UserController { @Autowired private UserService userService; @GetMapping("/users") public IPage<User> getUserList(@RequestParam(defaultValue = "1") int current, @RequestParam(defaultValue = "10") int size) { return userService.getUserList(current, size); } } ``` 以上示例中,`getUserList`方法实现了分页查询功能,通过调用`selectPage`方法实现分页查询,并将查询结果封装到`IPage`对象中返回给前端。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值