zoukankan      html  css  js  c++  java
  • springboot + mybatis分页插件pagehelper

     

    maven引入

    <dependency>
                <groupId>com.github.pagehelper</groupId><!--mybatis分页插件-->
                <artifactId>pagehelper-spring-boot-starter</artifactId>
                <version>1.2.3</version><!--注意版本-->
     </dependency>

    引入maven后,实际操作代码如下:

    controller

        /**demo   分页查询
         *
         * @param pageNum  当前页数
         * @param pageSize 当前页最多显示多少行
         * @return
         */
        @ResponseBody   //返回json数据
        @GetMapping("/demo/findByPaging")
        public  String findByPaging(Integer pageNum, Integer pageSize)throws ControllerException {
            int age = 27;
            JSONObject result = new JSONObject();
            try{
           //使用分页插件,核心代码就这一行 pageNum当前页数 pageSize 当前页最多显示多少行 PageHelper.startPage(pageNum,pageSize);
             Page
    <EmployeesDemo> data = demoService.findByPaging( age);//age为查询条件 result.put("employees",data);//data为返回数据 //获取页面总数 result.put("pages",data.getPages()); //获取数据总数 result.put("total",data.getTotal()); }catch (Exception e){ e.printStackTrace(); throw new ControllerException("分页查询失败",e,userContext); } return result !=null?result.toString():null; }

    service

        /**
         * 分页查询结果
         * @param age 查询条件  年龄
         * @return
         */
        public Page<EmployeesDemo> findByPaging(int age)throws ServiceException {
            Page<EmployeesDemo> pages = null;
            try{
                pages =demoDao.findByPaging(age);
            }catch (Exception e){
                e.printStackTrace();
                throw new ServiceException("分页查询结果出错 参数age="+age, e);
            }
            return pages;
        }

    dao

        /**demo
         * 分页查询
         * @param age  查询条件  年龄
         * @return
         */
        public Page<EmployeesDemo> findByPaging( int age);

    mapper

        <select id="findByPaging" resultType="HashMap"  parameterType="com.github.pagehelper.Page">
            select * from EmployeesDemo
            where age >= #{name}
        </select>

    参考:https://blog.csdn.net/qq_28988969/article/details/78082116

    另外如果为多表查询,不好建实体类情况;此时返回Hashmap即可,如下:

    controller

    import org.json.JSONObject;
    import com.github.pagehelper.Page;
    import com.github.pagehelper.PageHelper;
    
        /**
         * 获取用户信息
         * @param pageNum  当前页数
         * @param pageSize 当前页最多显示多少行
         * @return
         * @throws Exception
         */
        @RequestMapping("/user/getUserInfos")
        public String getUserInfos( Integer pageNum, Integer pageSize) throws Exception{
    
            JSONObject result = new JSONObject();
            try{
                PageHelper.startPage(pageNum,pageSize);
                Page<HashMap> data = sysUserService.getUserInfos( );
    
                result.put("data",data);
                //获取页面总数
                result.put("limit",data.getPages());
                //获取数据总数
                result.put("total",data.getTotal());
            }catch (Exception e){
                e.printStackTrace();
                //   throw new ControllerException("分页查询失败",e,userContext);
            }
    
            return result !=null?result.toString():null;
        }

    Services实现类

        /**
         * 获取用户数据
         * @return
         * @throws ServiceException
         */
        public Page getUserInfos() throws ServiceException{
            Page<HashMap> list = null;
            try {
                list = sysUserDao.getUserInfos();
    
            } catch (Exception e) {
                e.printStackTrace();
                throw new ServiceException("查询获取用户信息时出错", e);
            }
            return list;
        }

    dao接口

    import com.github.pagehelper.Page;
      
      /**
         * 获取用户数据
         * @return
         */
        public Page getUserInfos();

    mapper

    <select id="login" resultType="com.nsoft.gkzp.system.sysuser.entity.SysUser">
        select * from sys_user
        <where>
            <if test="loginName != null">
                 loginname =#{loginName}
            </if>
            <if test="password != null">
                and Password=#{password}
            </if>
        </where>
    </select>
    
     <select id="getUserInfos" resultType="java.util.HashMap">
            select k.id,k.loginName,t.name,t.Gender,RIGHT(IDCardNo,4) IDCardNo
            from   sys_user k
            left join HR_Recruit_entryInfo_base t  on t.IsNewest=1 and k.id = t.loginUserId
            where k.nstatusid =1
        </select>

    这里有一篇非常好的文档,一定要看看

    https://my.oschina.net/sunpr/blog/340951

    我截图划了重点如下:

  • 相关阅读:
    牛客练习赛51 D题
    Educational Codeforces Round 72 (Rated for Div. 2) C题
    Codeforces Round #583 (Div. 1 + Div. 2, based on Olympiad of Metropolises) C题
    Codeforces Round #583 (Div. 1 + Div. 2, based on Olympiad of Metropolises) A题
    Codeforces Round #583 (Div. 1 + Div. 2, based on Olympiad of Metropolises) A题
    Educational Codeforces Round 72 (Rated for Div. 2) B题
    Educational Codeforces Round 72 (Rated for Div. 2) A题
    《DSP using MATLAB》Problem 7.2
    《DSP using MATLAB》Problem 7.1
    《DSP using MATLAB》Problem 6.24
  • 原文地址:https://www.cnblogs.com/zdyang/p/pagehelper.html
Copyright © 2011-2022 走看看