Mybatis下collections使用pageHelper進行分頁
阿新 • • 發佈:2018-06-25
private ted 審核 status format 參數 import ast rtp
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,memo FROM 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; } }
Mybatis下collections使用pageHelper進行分頁