关于分页查询的网址
关于分页的代码
private String getPageOrderBy(Pageable page) {
if(page!= null && page.getSort() != null) {
StringBuilder sb = new StringBuilder();
page.getSort().forEach(sort -> sb.append(sort.getProperty())
.append(" ").append(sort.getDirection()).append(","));
if(sb.length() > 1) {
return (sb.substring(0,sb.length()-1));
}
}
return null;
}
}
使用mybatisplus实现的分页
/**
* 1.手写Sql 一种写法
* 2.利用MP机制实现分页
* @param pageResult
* @return
*/
@Override
public PageResult getItemList(PageResult pageResult) {//3个
IPage page = new Page(pageResult.getPageNum(),pageResult.getPageSize());
QueryWrapper queryWrapper = new QueryWrapper();
boolean flag = StringUtils.hasLength(pageResult.getQuery());
queryWrapper.like(flag,"title",pageResult.getQuery());
//执行分页查询,返回值依然是分页对象信息
page = itemMapper.selectPage(page,queryWrapper);
//回传5个参数 total/分页后的数据
long total = page.getTotal();
List<Item> rows = page.getRecords();
return pageResult.setTotal(total).setRows(rows);
}
从数据中拿到数据库中的字段
注意:如果要想拿到数据库的字段的值就必须,在实体类中就必须有相相对应的属性
从数据库中查到某些数据进行比较比较
List<ConsultationPojo> data = consultationDao.findAll(id);
for (ConsultationPojo consultation: data){
String txtId = consultation.getTxtId();
int i = Integer.parseInt(txtId);
if (i==0){
return SysResult.success(data);
}
}
使用分页查询的详解
分页查询开始********
/**
* 多参传入的方法:
* 1:多个不同类型的参数入参时,映射文件中可以不指定参数类型,
* 接口中的方法使用注解,将注解指定的名字,传入映射文件相应属性中
* 2:也可以把多个参数封装成对象,以对象类型入参
* 分页查询
* @param from 从第几条开始查...
* @param pagesize 每页显示的记录数
* @return 当前页对象的集合
*/
public List<User> fenye(@Param("from")Integer from,@Param("pagesize")Integer pagesize);
******************
<select id="fenye" resultType="entity.User">
SELECT * FROM users u
INNER JOIN role r ON u.`roleid`=r.`roleid`
LIMIT #{from} ,#{pagesize}
</select>
*****************************
/**
* 查询总记录数
*/
public Integer count();
******************
<select id="count" resultType="Integer">
SELECT count(*) FROM users
</select>
*****************************
protected void service(HttpServletRequest req, HttpServletResponse res)
throws ServletException, IOException {
req.setCharacterEncoding("utf-8");
res.setContentType("text/html;charset=utf-8");
SqlSession session=MybatisUtil.getSession(); //获得mybatis的session对象
try {
Integer pagesize=3; //每页显示的记录数
Integer page=null; //当前页
String pageQian=req.getParameter("page");
if(pageQian !=null){
page=Integer.parseInt(pageQian);
}else{
page=1; //默认看第一页
}
/*
* 数据库查询总页数
*/
Integer count=session.getMapper(UserMapper.class).count();
int totalyeshu=0; //总页数
if(count%pagesize==0){
totalyeshu=count/pagesize;
}else{
totalyeshu=(count/pagesize)+1;
}
/*
* 数据库查询当前页的数据
*/
List<User> userList=session.getMapper(UserMapper.class).fenye((page-1)*pagesize, pagesize);
/*
* 将数传给前台
*/
req.setAttribute("USERLIST", userList); //集合数据
req.setAttribute("PAGE", page); //当前页
req.setAttribute("COUNT", totalyeshu); //总页数
} catch (Exception e) {
e.printStackTrace();
}finally{
MybatisUtil.closeSession(session);
}
req.getRequestDispatcher("indexFenye.jsp").forward(req, res); //转发至主页
}
********************