• 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

    我截图划了重点如下:

  • 相关阅读:
    hdu1824-Let's go home:图论2-SAT
    acdream:Andrew Stankevich Contest 3:Two Cylinders:数值积分
    POJ 2516 Minimum Cost (KM最优匹配)
    LightOJ
    LightOJ
    HDU
    LightOJ
    LightOJ
    CodeForces
    CodeForces
  • 原文地址:https://www.cnblogs.com/zdyang/p/pagehelper.html
Copyright © 2020-2023  润新知