概述
经常使用,本次在使用mybatis的xml中进行多表查询并分页返回
传参类
public class TbProblemPageVo<T> {
private int currentPage;
private int size;
private String labelid;
private int startIndex;
//private List<T> data;
public TbProblemPageVo() {
}
public TbProblemPageVo(int currentPage, int size, String labelid) {
this.currentPage = currentPage;
this.size = size;
this.labelid = labelid;
}
/*public List<T> getData() {
return data;
}
public void setData(List<T> data) {
this.data = data;
}
*/
public int getStartIndex() {
return startIndex;
}
public void setStartIndex(int startIndex) {
this.startIndex = startIndex;
}
public int getCurrentPage() {
return currentPage;
}
public int getSize() {
return size;
}
public String getLabelid() {
return labelid;
}
public void setCurrentPage(int currentPage) {
this.currentPage = currentPage;
}
public void setSize(int size) {
this.size = size;
}
public void setLabelid(String labelid) {
this.labelid = labelid;
}
}
mapper中的sql语句
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.tensquare.qa.dao.TbProblemMapper">
<!-- List<TbProblem> newlist(int labelid,int page,int size); -->
<select id="newlist" parameterType="com.tensquare.qa.model.TbProblemPageVo" resultType="com.tensquare.qa.entity.TbProblem">
select id,title,content,createtime,updatetime,userid,nickname,visits,thumbup,reply,solve,replyname,replytime
from tb_pl,tb_problem
where id=problemid and labelid=#{tbProblemPageVo.labelid} order by replytime desc limit #{tbProblemPageVo.startIndex},#{tbProblemPageVo.size}
</select>
</mapper>
service
public PageResult<TbProblem> newlist(int labelid,int currentPage,int size){
//在mybatis中使用分页要使用Page对象
//Page<TbProblem> tbProblemPage = new Page<>(currentPage,size);
//QueryWrapper<TbProblem> queryWrapper = new QueryWrapper<>();
TbProblemPageVo tbProblemPageVo = new TbProblemPageVo(currentPage,size,labelid+"");
List<TbProblem> tbProblemList = tbProblemMapper.newlist(labelid, new TbProblemPageVo(currentPage, size,labelid+""));
return new PageResult<>(tbProblemList.size(),tbProblemList);
}