(mybatis-plus 自定义查询分页)
  xN6yzmc17JJt 2023年12月01日 18 0

配置加载分页 Bean

@Bean
    public PaginationInterceptor paginationInterceptor() {
        return new PaginationInterceptor();
    }

将此 bean 对象注入到自己工程中,不然分页功能无法实现。

分页查询

使用 mybatis-plus 自身的查询 sql 查询实现方式:

/**
         * 使用 mybatis-plus 自身查询条件
         * pagenum: 查询页
         * pagecount:每页查询条数
         * @return
         */
        @Override
        public String findByPage(int pagenum, int pagecount){
                
                //查询条件
                QueryWrapper<Customer> queryWrapper =  new QueryWrapper<>();
        queryWrapper.orderByDesc("faddtime495");
                //_userrMapper 数据源, User 查询条件对象
        //分页条件
        Page<User> page = new Page<>(pagenum,pagecount);

                /**
              * 返回结果集有:
              * IPage<Map<String, Object> 或者 IPage<User>
              * 可以返回 User 对象或者 Map
              * */
        IPage<Map<String, Object>> selectMapsPage = _userMapper.selectMapsPage(page,queryWrapper);
        
        //查询结果集
        List<Map<String, Object>> records = selectMapsPage.getRecords();
         
        //查询结果总条数
        long total = selectMapsPage.getTotal();
        
                return records ;
        }

自定义 sql 语句分页查询

首先,需要一个自定义的数据源方法查询,可使用原生的 mybatis 实现,使用 *mapper.xml 方式,或者使用注解 @Select 方式。

  • mapper.xml 方式
<mapper namespace="com.dao.UserDao">

        <select id="getUserByMap" resultType="Map" parameterType="String">
                SELECT * FROM User WHERE userId = #{userId}  AND userName = #{userName};
        </select>
</mapper>
  • 注解方式
/**
     * List<Map<String, Object>> 返回结果可使用 user 对象或者 map 对象
     * columnMap 查询条件
     * page: 分页对象
     * cm 表示 columnMap 对象
     **/
        @Select("SELECT * FROM User WHERE userId = #{cm.userId}  AND userName = #  {cm.userName} ")
        public List<Map<String, Object>> getUser(@Param(Constants.COLUMN_MAP) 
        Map<String, Object> columnMap, Page<Map<String, Object>> page);
  • impl 实现类
/**
         * 分页查询所有需求
         * pagenum   : 查询页数
         * pagecount : 查询条数
         */
        @Override
        public String getUserByMap(int pagenum, int pagecount) {
                
                //查询条件 Map
                Map<String,Object> condition = new HashMap<>();
                condition.put("userId",fcustomerid);
                condition.put("userId",userName);
                //分页插件
                Page<Map<String, Object>> page = new Page<>(pagenum,pagecount);
                
                //自定义分页查询所有需求
                List<Map<String, Object>> userlist =  _usermapper.selectDemandListPage(page);
        page.setRecords(demandlist);
        
        //需求总条数
        long total = page.getTotal();
        
                return userlist ;
        }

mybatis-plus 官网地址:https://mp.baomidou.com/

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年12月01日 0

暂无评论

推荐阅读
  rvP2pqm8fEoB   2023年12月24日   15   0   0 ListJavaListJava
xN6yzmc17JJt
作者其他文章 更多