PageHelper只对紧跟着的第一条SQL起作用

这个sql的中心思想就是根据查询到的schema然后分别查询schema中的相关数据再用union all将结果及拼接在一起。LocServiceImpl.findAllLoc(Loc loc)
@Override
    public List<Loc> findAllLoc(Loc loc) {
        try {
            HashMap<String,Object> map = new HashMap<String,Object>();
            List<String> schemas = this.locMapper.findAllSchema(loc);//查询所有的schema
            map.put("schemas", schemas);
            map.put("loc", loc);
            return this.locMapper.findAllLoc(map);
        } catch (Exception e) {
            e.printStackTrace();
            return new ArrayList<>();
        }
    }

//分页异常的代码的LocController中代码

@RequestMapping("loc/list")
    @ResponseBody
    public Map<String, Object> locList(QueryRequest request, Loc loc) {
        PageHelper.startPage(request.getPageNum(), request.getPageSize());
        List<Loc> list = this.locService.findAllLoc(loc);//具体实现在第一段代码。系统认为findAllSchema(loc)是第一条语句。PageHelper只对紧跟着的第一条SQL起作用

//        HashMap<String,Object> map = new HashMap<String,Object>();
//        List<String> schemas = this.locMapper.findAllSchema(loc);//        map.put("schemas", schemas);
//        map.put("loc", loc);
//
//        PageHelper.startPage(request.getPageNum(), request.getPageSize());
//        List<Loc> list =  this.locMapper.findAllLoc(map);

        PageInfo<Loc> pageInfo = new PageInfo<>(list);
        return getDataTable(pageInfo);
    }

//yml配置

#pagehelper
pagehelper:
  helperDialect: oracle
  reasonable: false//这个熟悉需要改成false
  supportMethodsArguments: true
  params: count=countSql 

//分页正常的LocController中代码,拆分开,然后把PageHelper放在需要分页的SQL之前,就正常了。

@RequestMapping("loc/list")
    @ResponseBody
    public Map<String, Object> locList(QueryRequest request, Loc loc) {
//        PageHelper.startPage(request.getPageNum(), request.getPageSize());
//        List<Loc> list = this.locService.findAllLoc(loc);

        HashMap<String,Object> map = new HashMap<String,Object>();
        List<String> schemas = this.locMapper.findAllSchema(loc);
        map.put("schemas", schemas);
        map.put("loc", loc);
        PageHelper.startPage(request.getPageNum(), request.getPageSize());//PageHelper只对紧跟着的第一条SQL起作用
        List<Loc> list =  this.locMapper.findAllLoc(map);//这条语句被视为紧跟着的第一条语句

        PageInfo<Loc> pageInfo = new PageInfo<>(list);
        return getDataTable(pageInfo);
    }

原文地址:https://www.cnblogs.com/CryOnMyShoulder/p/11428476.html

时间: 2024-10-18 19:54:02

PageHelper只对紧跟着的第一条SQL起作用的相关文章

yii 进行事务操作是不可以在一条sql里边放多条sql

$sql = 'INSERT INTO `table1`(`customerID`, `advertisementID`, `consumedStatus`, `consumedTime`) VALUES (:customerID,:advertisementID,:consumedStatus,:consumedTime); UPDATE `table2` SET `consumedTimes`= `consumedTimes` + 1 WHERE `advertisementID`= :ad

mysql -- 一次执行多条sql语句

最近要做一个软件升级,其中涉及到数据库表字段的变动(新增或删除或修改),所有的关于数据库的变动的sql语句都是存放在Sqlupdate.sql文件中,每次升级的时候都需要执行一次Sqlupdate.sql里的所有sql语句,这就涉及到执行多条语句的问题了.软件在CodeIgniter框架上开发的,CodeIgniter有封装好的执行sql语句的函数:$this->db->query('****'),但此函数一次只能执行一条sql语句.所以得另外想办法了.百度了下,找到了一些资料.multi_q

Android 自定义Adapter 但listview 只显示第一条数据

楼主让这个问题郁闷了一晚上.....在logcat里明明显示adapter的getview方法里的list大于一条数据 ,但posotion却一直是0.....运行后也只显示list[0]里面的数据....最后的最后原来错误出在布局文件上 我以前的是这样的; <ScrollView android:layout_width="fill_parent" android:layout_height="wrap_content" > <!-- listv

mybatis 关联查询时,从表只返回第一条记录解决办法

如果两表联查,主表和明细表的主键都是id的话,明细表的多条只能查询出来第一条. 造成以上情况可能的原因: 1.级联查询的时候,主表和从表有一样的字段名的时候,在mysql上命令查询是没问题的.但在mybatis中主从表需要为相同字段名设置别名.设置了别名就OK了. 例子: 主表Standard, 从表StandEntity,均有名为id的字段 1 <resultMap id="StandardAndEntityResultMap" type="whu.edu.irlab

Oracle-left join两表关联只取B表匹配到的第一条记录

背景:  A表.B表两表关联,关联出来的结果里B表有不止一条,需求是只要B表结果中的某一条(按某字段排序) 经过百度,发现 row_number() over(partition by a order by b desc)函数可用(需要说明下,order by 必须有缺少会报错),以下是数据环境及结果. 创建数据环境 create table A(ANAME varchar(20)); insert into A values('alan'); insert into A values('Ale

第一条:考虑用静态工厂代替构造器

对于类而言,为了让使用者获取它自身的一个实例,最常见的方法就是提供一个公有的构造器.但是有一种方法,他就是静态工厂方法(static factory method),它只返回类的实例的静态方法.比如说我们所有的基本类型的封装类中的valueOf()方法 1 public static Boolean valueOf(boolean b){ 2 3 return b ? Boolean.TRUE : Boolean.FALSE; 4 5 } 类可以通过静态的工厂方法提供它的客户端,而不是通过构造器

SQL 去重 显示第一条数据 显示一条数据

需求描述:根据某一个字段或几个字段去重来显示任一条数据,第一条或最后一条. 数据样式如下图: 尝试解决: --count(*)方法(只把条数为1条的显示出来了,超过1条全部过滤了) select * from t4 where 自编条码 in (select 自编条码 from t4 group by 自编条码 having count(id)=1) 以上方法,会把仅1条记录的显示,但是重复的并没有保留其中一条,也过滤掉了. 所以,我们需要变化一下,提供三种解决方法: 一.通过row_numbe

自己动手写处理器之第四阶段(1)——第一条指令ori的实现

将陆续上传本人写的新书<自己动手写处理器>(尚未出版),今天是第11篇,我尽量每周四篇 第4章 第一条指令ori的实现 前面几章介绍了很多预备知识,也描绘了即将要实现的OpenMIPS处理器的蓝图,各位读者是不是早已摩拳擦掌,迫切希望一展身手了,好吧,本章我们将实现OpenMIPS处理器的第一条指令ori,为什么选择这条指令作为我们实现的第一条指令呢?答案就两个字--简单,指令ori用来实现逻辑"或"运算,选择一条简单的指令有助于我们排除干扰,将注意力集中在流水线结构的实现

自己动手写CPU之第四阶段(2)——验证第一条指令ori的实现效果

将陆续上传本人写的新书<自己动手写CPU>(尚未出版),今天是第12篇,我尽量每周四篇 书名又之前的<自己动手写处理器>改为<自己动手写CPU> 4.3 验证OpenMIPS实现效果 4.3.1指令存储器ROM的实现 本节将验证我们的OpenMIPS是否实现正确,包含:流水线是否正确.ori指令是否实现正确.在验证之前,需要首先实现指令存储器,以便OpenMIPS从中读取指令. 指令存储器模块是只读的,其接口如图4-7所示,还是采用左边是输入接口,右边是输出接口的方式绘