技术标签: JAVA
使用 com.github.pagehelper 分页插件 出现上述的错误大致意思就是类型转换错误
使用的是 spring boot 项目要以加载下面的依赖:
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper-spring-boot-starter</artifactId>
<version>1.3.0</version>
</dependency>
大家可以适当的调整版本,也不一定要使用 我上面的版本,可以用最新的。
在执行的过程中为什么会出现如下的异常,在我查看我写的代码后,发现了,执行顺序的问题,在使用 PageHelper.startPage(page,rows); 进行分页后,接下来要执行 查询数据库的代码,只能执行一次,而不能执行多次,比如下面的错误代码:
控制层:
@GetMapping("/userList")
@ResponseBody
public Response listUsers(int page, int rows){
PageHelper.startPage(page,rows);
PageInfo<User> users = new PageInfo<User>(iUserService.listUsers());
return response.success("查询成功!", users);
}
调用的service层:
public Page<User> listUsers(String type, String realName, String account, String status) {
QueryWrapper queryWrapper = new QueryWrapper();
Map<String, String> map = new HashMap<>();
map.put("realname",realName);
List<Map<String,Object>> users = baseMapper.selectUserList(map); //这里查询了一次数据库
return (Page<User>)baseMapper.selectList(queryWrapper); //这里又进行了一次查询 分页插件不知道以谁为准
}
这里如果我们要正确,其实很简单 把 PageHelper.startPage(page,rows); 分页放到service层中 正确写法就是
public Page<User> listUsers(int page,int rows,String type, String realName, String account, String status) {
QueryWrapper queryWrapper = new QueryWrapper();
Map<String, String> map = new HashMap<>();
map.put("realname",realName);
List<Map<String,Object>> users = baseMapper.selectUserList(map);
PageHelper.startPage(page,rows)
return (Page<User>)baseMapper.selectList(queryWrapper);
}
这样子查询就不会出问题了,所以避免出上述的问题,大家还是把进行分页的代码,都放到service层中进行分页就好了。
究其原因就在于pageHelper是通过mybatis的pulgin实现了Interceptor接口:
如果在service层中只有一次查询,那么写在控制层是没有什么问题的,但是有多次查询的话,那么就必须得把分页插件放到最后一条查询前面,这样才能避免上述异常。
第一周竞赛题目解法小结*1。机器翻译**对于这道题其实没有什么好说的,就是一道十足的大水题(゚ー゚),运用队列加上一个判断存在的数组来快速查寻即可,需要注意的是此处的数据较小,可以只用将队列的空间开的大一些,但如果以后遇见数据较大的队列题时需要用到循环队列 一下便是实现代码:#include<cstdio>#include<cstring>#include<iostream>#def
import openpyxlfrom datetime import datetime,timedeltaimport pandas as pdimport os, sys,re,shutiltt = datetime.now().timetuple()today = str(tt.tm_year)+'-'+str(tt.tm_mon)+'-'+str(tt.tm_mday)p...
YOLO-V3实时检测实现(opencv+python实现)
注:arm-linux-gdb的安装路径是/usr/local/arm-gdb1、arm-linux-gdb的编译安装下载gdb-6.8.tar.bz2至工作目录gdb源码下载:http://ftp.gnu.org/gnu/gdb/命令如下:$tar -jxvf gdb-6.8.tar.bz2$cd gdb-6.8$./configure --target=arm-linux --e
ORA-00001: 违反唯一约束条件 (.) ORA-00017: 请求会话以设置跟踪事件 ORA-00018: 超出最大会话数 ORA-00019: 超出最大会话许可数 ORA-00020: 超出最大进程数 () ORA-00021: 会话附属于其它某些进程;无法转换会话 ORA-00022: 无效的会话 ID;访问被拒绝 ORA-00023: 会话引用进程私用内存
遇到一个坑货问题:使用 leanback V17 的包,添加控件到页面上,结果出现了crash, crash信息如下:android.view.InflateException: Binary XML file line #21 in org.droidtv.musicplayer:layout/lb_playback_controls_row: Binary XML file line #21 in org.droidtv.musicplayer:layout/lb_playback_contr.
kvm是当前最流行的开源虚拟化解决方案之一,也是redhat官方支持的虚拟化方案,从kernel 2.6开始,linux内核默认支持kvm模块。 kvm是内核模块,是连接用户和虚拟机的接口,真正模拟出硬件的是qemu。 kvm本身也有管理虚拟机的接口程序:qemu-system 不过当前比较主流的管理软件是Libvirtd,通过此进程...
首先win+R调出运行对话框 输入gpedit.msc 用户配置—管理模板—windows组件—internet explorer 双击 找到阻止首次运行自定义设置 右击 编辑 在右边选择 启用 在下面的“选择所需选项中”点击直接转到主页即可。转载于:https://www.cnblogs.com/daixiaohu1988/archive/2012/03/05/2380...
转自:HttpURLConnection与 HttpClient 区别/性能测试对比 - 尚码园HttpURLConnection与HttpClient随笔 目前在工做中遇到的须要各类对接接口的工做,须要用到HTTP的知识,工做完成后想要作一些笔记,原本知识打算把本身写的代码粘贴上来就行了,https://www.shangmayuan.com/a/6ee68d2d1c9b4606bf618dfd.html【README】本文总结了 HttpURLConnection, HttpClient
????????关注后回复“进群”,拉你进程序员交流群????????来源丨新智元新智元报道来源:Reddit编辑:Priscilla 好困【新智元导读】苹果计划推出在iOS ...
借助华为云IoT平台,介绍profile插件的开发流程
一.npm install pnpm -g报错如图二.解决方法1.先安装cnpm并且配置淘宝镜像npm install -g cnpm --registry=https://registry.npm.taobao.org 2.用cnpm install pnpm -g安装pnpmcnpm install pnpm -g3.检查pnpm是否安装成功pnpm -v注:如果提示当前版本则安装成功4.pnpm设置源查看源pnpm config get registry 切