Mybatis下collections使用pageHelper进行分页

pageHelper在对mybatis一对多分页时造成查询总页数结果不对的情况。

 

可以做出如下修改:

service层:

 
public CommonResult worksList(String userId, int page, int pageSize) throws Exception  {
PageHelper.startPage(page, pageSize);
List<DesignDTO1> dtos = designMapper.worksList(userId);
for (DesignDTO1 dto : dtos) {
checkDesignerEdit(dto);
}
PageInfo p = new PageInfo(dtos);
Map map = new HashMap();
map.put("rows", p.getList());
map.put("totalCount", p.getTotal());

return CommonResult.success(map);
}
 

xml配置文件

<resultMap id="ResultMapDesignDTO1" type="com.zhx.web.design.model.DesignDTO1"><id column="id" jdbcType="INTEGER" property="id"/><result column="works_id" property="worksId" jdbcType="VARCHAR"/><result column="works_name" property="worksName" jdbcType="VARCHAR"/><result column="status" property="status" jdbcType="INTEGER"/><result column="work_status" property="workStatus" jdbcType="INTEGER"/><result column="status_msg" property="statusMsg" jdbcType="VARCHAR"/><result column="create_time" property="createTime" jdbcType="TIMESTAMP"/><result column="works_img_cover" property="workCoverImg" jdbcType="VARCHAR"/><association property="userInfo" javaType="com.zhx.web.design.model.UserDTO"><result column="user_id" property="userId" jdbcType="VARCHAR" /><result column="real_name" property="realName" jdbcType="VARCHAR" /><result column="user_email" property="userEmail" jdbcType="VARCHAR" /><result column="unit_name" property="unitName" jdbcType="VARCHAR" /><result column="user_phone" property="userPhone" jdbcType="VARCHAR" /></association><collection property="worksLog" ofType="com.zhx.web.design.model.WorksLog"column="works_id"//这个参数会作为子查询的参数,需要和实体的属性参数一致select="com.zhx.web.design.mapper.DesignMapper.getWorksLogs"></collection></resultMap><select id="getWorksLogs" resultMap="WorksLogs" parameterType="java.lang.String">SELECT oper_time,memoFROM works_log where  works_id =#{worksId}//这里用works_id好像也没问题……测试了几次,用错误参数也能传递过来,
就是个占位符,实际参数会从
collection中的column中传递过来
</select> <!--查询用户上传作品列表--> <select id="worksList" resultMap="ResultMapDesignDTO1" parameterType="java.lang.String"> SELECT ui.user_id,ui.real_name,ui.user_email,ui.unit_name,ui.user_phone,uw.id,uw.works_id ,uw.works_name, uw.create_time ,uw.status_show as status,uw.status as work_status,uw.works_img_cover, <include refid="showStatusMsg"></include> from user_works uw ,user_info ui where uw.user_id = ui.user_id and uw.user_id = #{userId} </select>

实体类

package com.zhx.web.design.model;import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;import java.util.Date;
import java.util.List;
@JsonSerialize(include= JsonSerialize.Inclusion.NON_NULL)
public class DesignDTO1 {/*** 作品联系人信息*/private UserDTO userInfo;private Integer id;/*** 作品编号*/private String worksId;/*** 作品名称*/private String worksName;/*** 上传时间*/@JsonFormat(pattern="yyyy年MM月dd日")private Date createTime;/*** 状态status_show*/private Integer status;/*** 状态描述*/private String statusMsg;/*** 作品封面图(图片名称)*/private String workCoverImg;/*** 是否可修改*/private Integer edit;/*** 可修改剩余时间*/private  Long edtiTime;/*** 业务状态status*/private Integer workStatus;/*** 作品审核信息*/private List<WorksLog> worksLog;public UserDTO getUserInfo() {return userInfo;}public void setUserInfo(UserDTO userInfo) {this.userInfo = userInfo;}public Integer getId() {return id;}public void setId(Integer id) {this.id = id;}public String getWorksId() {return worksId;}public void setWorksId(String worksId) {this.worksId = worksId;}public String getWorksName() {return worksName;}public void setWorksName(String worksName) {this.worksName = worksName;}public Date getCreateTime() {return createTime;}public void setCreateTime(Date createTime) {this.createTime = createTime;}public Integer getStatus() {return status;}public void setStatus(Integer status) {this.status = status;}public String getStatusMsg() {return statusMsg;}public void setStatusMsg(String statusMsg) {this.statusMsg = statusMsg;}public String getWorkCoverImg() {return workCoverImg;}public void setWorkCoverImg(String workCoverImg) {this.workCoverImg = workCoverImg;}public Integer getEdit() {return edit;}public void setEdit(Integer edit) {this.edit = edit;}public Long getEdtiTime() {return edtiTime;}public void setEdtiTime(Long edtiTime) {this.edtiTime = edtiTime;}public Integer getWorkStatus() {return workStatus;}public void setWorkStatus(Integer workStatus) {this.workStatus = workStatus;}public List<WorksLog> getWorksLog() {return worksLog;}public void setWorksLog(List<WorksLog> worksLog) {this.worksLog = worksLog;}
}

 

转载于:https://www.cnblogs.com/SimonHu1993/p/9225764.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/570689.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

使用Kylin导入JDBC数据源遇到的问题

一、目标&#xff1a; 直接使用Mysql数据作为Kylin数据源 二、参考官方配置 JDBC 数据源 准备 Sqoop Kylin 使用 Apache Sqoop 从关系型数据库加载数据到 HDFS。在与 Kylin 同一个机器上下载并安装最新版本的 Sqoop。我们使用 SQOOP_HOME 环境变量指出在本指南中 Sqoop 的安…

php 通过array_merge()和array+array合并数组的区别和效率比较

众所周知合并两个数组可以使用array_merge()&#xff0c;这是php提供的一个函数。另外还可以通过 array 的方式来合并数组&#xff0c;这两种直接有什么区别&#xff0c;哪一个的效率更高呢&#xff1f; array_merge() 格式&#xff1a; array array_merge ( array … ] ) 注意…

解决ubuntu系统root用户下Chrome无法启动问题

说明&#xff1a;本文转载自-https://www.cnblogs.com/hbsygfz/p/8409517.html 由于ubuntu16.04系统自带的是Firefox浏览器&#xff0c;需要安装Chrome浏览器&#xff0c;但是在root用户下安装后发现&#xff0c;Chrome无法正常启动。安装及问题解决具体如下&#xff1a; 1. …

mysql ERROR 1045 和2058时(28000): 错误解决办法

mysql ERROR 1045 (28000): 错误解决办法 听语音|浏览&#xff1a;54286|更新&#xff1a;2018-02-23 14:34|标签&#xff1a;mysql 1234567分步阅读ERROR 1045 (28000): Access denied for user ODBClocalhost (using password: NO) ERROR 1045 (28000): Access denied for us…

Hive设置参数-指定引擎-队列

文章转载&#xff1a;https://www.cnblogs.com/huangmr0811/p/5571001.html Hive提供三种可以改变环境变量的方法&#xff0c;分别是&#xff1a;&#xff08;1&#xff09;、修改${HIVE_HOME}/conf/hive-site.xml配置文件&#xff1b;&#xff08;2&#xff09;、命令行参数&…

php实现 字符串加密(分类分布分工,化不可能为可能)

php实现 字符串加密&#xff08;分类分布分工&#xff0c;化不可能为可能&#xff09; 一、总结 一句话总结&#xff1a;谋而后动&#xff0c;加先伪代码&#xff0c;在带函数逻辑&#xff0c;在函数的方式可以极大的避免错误和降低难度。不然这个题目乎出现各种乱七八糟的错误…

Redis集群安装

注&#xff1a;官方给出的安装文档是在一台物理机安装多个Redis实例&#xff0c;https://redis.io/topics/cluster-tutorial&#xff0c;我的生产环境是多台物理机&#xff0c;安装起来就更简单 环境: 6台物理机 CentOS7.2-1511-minimal ip:192.168.1.101-192.168.1.106 网…

Redis-集群监控之Redis monitor

连续两天配置Redis 集群监控&#xff0c;尝试过三种开源软件&#xff0c;Redis-live,Redis-state,Redis-monitor &#xff0c;由于内网生产环境&#xff0c;每一个软件的部署都费了老劲。 简单说一下&#xff0c;避免再有人趟坑。 1、Redis-live&#xff1a;此项目5年没有维护…

Magento 架构原则

Magento架构原则 》OOP体系结构和编程原则OOP体系结构和编程原则面向对象编程&#xff08;OOP&#xff09;设计允许软件组件具有最大的灵活性和可扩展性&#xff0c;允许您设计和实现高度定制的网站。面向对象原则的优点包括结合行业标准的编程设计模式以及业务逻辑与表示的严格…

vue-cli脚手架中webpack配置基础文件详解

一、前言 vue-cli是构建vue单页应用的脚手架&#xff0c;输入一串指定的命令行从而自动生成vue.jswepack的项目模板。这其中webpack发挥了很大的作用&#xff0c;它使得我们的代码模块化&#xff0c;引入一些插件帮我们完善功能可以将文件打包压缩&#xff0c;图片转base64等。…

openssl解析国密X509证书

openssl解析国密X509证书&#xff0c;把公钥拿出来重写一下就行了 x strToX509(pbCert, pulCertLen);dwRet getCertPubKey(x, &pRSAPubKeyBlob, &pECCPubKeyBlob);ECCPUBLICKEYBLOB pec { 0 };//目标公钥pec.BitLen 256;int i 0;for (i 0; i < 64; i)…

如果Python对于磁盘没有写入权限,还会运行吗?

Python如果对于磁盘没有写入权限&#xff0c;那么编译成功的字节码文件就只会存储在内存当中&#xff0c;而不会写入到磁盘&#xff0c;每次运行Python都会重新编译&#xff0c;然后运行。 转载于:https://www.cnblogs.com/chaoguo1234/p/9247642.html

maven POM总结

可继承的字段 version property 其他占坑&#xff1a; parent import scope Dependency_Management中的scope是可以被继承的&#xff0c;http://maven.apache.org/pom.html#Dependency_Management name 不可继承 artifactId 不可继承 &#xff0c; 确定打包的最终名称。 这个…

WIN10系统电脑注册表无法删除所有指定的值如何解决的方法

WIN10系统计算机注册表一直删除失败所有指定的值怎么样操作成功的步骤 1、在开始菜单点击右击&#xff0c;找到并点击【命令提示符&#xff08;管理员&#xff09;】&#xff0c;若自动跳出操作系统的人账户控制找到并点击【是】就没有问题了&#xff1b; 2、在命令提示符中填…

windows10系统的电脑如何设置密码?

电脑是21世纪不可缺少的重要工具&#xff0c;因为电脑&#xff0c;我们的生活发生了翻天覆地的变化&#xff0c;很难想象&#xff0c;如果离开电脑&#xff0c;这个世界会变成什么样子。今天&#xff0c;我就给大家介绍一下电脑如何设置密码 1、点击桌面左下角的开始按钮&…

JVM从入门到放弃——JVM内存模型

前言 Java和C或者是C相比较而言&#xff0c;最大的区别是C系列的程序员在编写代码的时候&#xff0c;总是要对程序中的变量进行释放内存的操作&#xff0c;所以在编写C或者是C的程序员需要格外的谨慎&#xff0c;因为他们对程序的内存有着很高的权限&#xff0c;这样虽然是特点…

小弟个人学习的过程!!!

小弟学生一个&#xff0c;高考没有考到一个好的学校&#xff0c;只能在不入流的学校学习软件。 之所以学习软件&#xff0c;因为听说软件行业比较赚钱。好吧&#xff01;&#xff1a; ) 因为大学学校教的太过基础&#xff0c;小弟只能开始自学之旅。 当然前期是在网上搜索教学视…

Win10强制更新怎么关闭 彻底禁止Windows自动更新

很多Win10用户来说经常会遇到这样的烦恼&#xff0c;电脑系统会不时的提醒自动更新&#xff0c;而且一等就要等很长时间&#xff0c;而通过手动禁止Windows update自带更新服务&#xff0c;往往会出现死灰复燃现象。 自己的电脑&#xff0c;竟然做不了主&#xff1f;小编表示不…

这个故事告诉你,拥有吃不胖的超能力就无忧无虑

这个故事告诉你&#xff0c;拥有吃不胖的超能力就无忧无虑了吗&#xff1f;本文转载自古代文学网 《塑胶人》剧照   导语   澳大利亚有部喜剧短片叫《塑胶人》&#xff0c;女主在约会前万事不顺&#xff0c;直到发现自己的外形居然能够像橡皮泥一样&#xff0c;用手塑造。…

同步异步 阻塞非阻塞

首先知道同步异步与阻塞非阻塞不是一个层次的概念 “阻塞”与"非阻塞"与"同步"与“异步"不能简单的从字面理解&#xff0c;提供一个从分布式系统角度的回答。 1.同步与异步 同步和异步关注的是消息通信机制 (synchronous communication/ asynchronous…