PageHelp遇到的坑发现Mapper.xml文件<if>细节

属性tatol值与实际分页出来的集合记录总数不一样本来是只有1条记录的,但是给出的tatol有30条,当传来的PageNum大于实际有的也会返回记录(按理是没有记录的)
测试代码:

 @Test
    public void checkProjectItems(){
        CheckProjectFactor checkProjectFactor=new CheckProjectFactor();
        checkProjectFactor.setCode("12");
        checkProjectFactor.setName("项");
        checkProjectFactor.setDetectType("到货检测");
        //checkProjectFactor.setYear("2017年");
        checkProjectFactor.setUserName("小刘");
        List<ProjectTableItemDto> projectTableItemDtoList=new LinkedList<>();
        //System.out.println(projectCustomMapper.checkProjectTableItem(checkProjectFactor));
        ProjectTableDetail projectTableDetail=new ProjectTableDetail();
      Page page=   PageHelper.startPage(3,30);
        projectTableItemDtoList=projectCustomMapper.checkProjectTableItem(checkProjectFactor);
      PageInfo info=new PageInfo<>(projectTableItemDtoList);
        //Page<ProjectTableItemDto> page=(Page<ProjectTableItemDto>)projectTableItemDtoList;
        System.out.println("总条数:"+page.getTotal()+"总页数"+page.getPages()+"页号"+page.getPageNum());
        System.out.println(info.getPageNum());
        System.out.println(projectTableItemDtoList);
    }

经过多番的测试检查,问题出现Mapper.xml文件sql语句,from后面的的表名称要根据后面的判断过的字段给表名字加上作为判断

<!--根据条件查出项目-->
    <select id="checkProjectTableItem" resultMap="projectTableItem">
        SELECT project.id,project.manager,project.`name`,detect_type.`name` AS detectType
        from project
        <if test="checkProjectFactor.year !=null and checkProjectFactor.year !=''">
        ,year_info
        </if>
        ,detect_type,sys_user
WHERE project.create_oper=sys_user.id
        AND sys_user.username=#{checkProjectFactor.userName}
AND project.detect_type_id=detect_type.id
        <if test="checkProjectFactor.year !=null and checkProjectFactor.year !=''">
            AND year_info.`name`=#{checkProjectFactor.year}
            AND year_info.id=project.year_info_id
        </if>
        <if test="checkProjectFactor.detectType !=null and checkProjectFactor.detectType !=''">
            AND detect_type.`name`=#{checkProjectFactor.detectType}
        </if>
        <if test="checkProjectFactor.name !=null and checkProjectFactor.name !=''">
            AND project.`name` LIKE CONCAT('%',#{checkProjectFactor.name},'%')/*"%${checkProjectFactor.name}%"*/
        </if>
        <if test="checkProjectFactor.code !=null and checkProjectFactor.code !=''">
            AND project.`code` LIKE CONCAT('%',#{checkProjectFactor.code},'%')/*"%${checkProjectFactor.code}%"*/
        </if>
    </select>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值