Mysql+Mybatis分页查询——数据库系列学习笔记

Posted 来老铁干了这碗代码

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Mysql+Mybatis分页查询——数据库系列学习笔记相关的知识,希望对你有一定的参考价值。

一、首先做一个查询所有并显示

dao

public interface ProductDAO {
	public List<Product> list();
}

mapper

<mapper namespace="hust.mm.dao.ProductDAO">
	<select id="list" resultType="Product">
		select * from product
	</select>
</mapper>

Controller

@RequestMapping("/list.do")
public ModelAndView productlist(){
	ModelAndView mav = new ModelAndView();
		
	List<Product> products = productDao.list();
		
	mav.addObject("products", products);
	mav.setViewName("productList");
		
	return mav;
}

jsp

<table align="center">
		<th>
			<td>id</td>
			<td>name</td>
			<td>price</td>
		</th>
		<c:forEach items="${products }" var="p" varStatus="st">
			<tr>
				<td>${p.id }</td>
				<td>${p.name }</td>
				<td>${p.price }</td>
			</tr>
		</c:forEach>
</table>

以上简要给出了一个表中的所有数据


二、分页显示

修改dao:传入起始查询位置和每次需查询的条数

public interface ProductDAO {
	public List<Product> list();
	public List<Product> list(@Param("start") int start, @Param("count") int count);
}

修改mapper:限制每次的查询数量,每次从数据库中第start条数据开始查询,查询count条。

<mapper namespace="hust.mm.dao.ProductDAO">
    <select id="list" resultType="Product">
		select * from product
		<if test="start!=null and count!=null">
			limit #{start},#{count}
		</if>
	</select>
</mapper>

修改Controller

@RequestMapping("/list.do")
public ModelAndView productlist(int start){
	ModelAndView mav = new ModelAndView();
		
	List<Product> products = productDao.list(start,3);
		
	mav.addObject("products", products);
	mav.addObject("start", start);
	mav.setViewName("productList");
		
	return mav;
}

修改jsp:每页显示三条数据,支持翻页

<table align="center">
		<th>
			<td>id</td>
			<td>name</td>
			<td>price</td>
		</th>
		<c:forEach items="${products }" var="p" varStatus="st">
			<tr>
				<td>${p.id }</td>
				<td>${p.name }</td>
				<td>${p.price }</td>
			</tr>
		</c:forEach>
        
        <tr>
			<td><a href="list.do?start=${start-3 }">上一页</a></td>
			<td><a href="list.do?start=${start+3 }">下一页</a></td>
		</tr>
</table>

以上是关于Mysql+Mybatis分页查询——数据库系列学习笔记的主要内容,如果未能解决你的问题,请参考以下文章

SpringBoot Mybatis-Plus 分页模糊查询 分页参数和响应封装

SpringBoot2.0系列教程Springboot框架添加PageHelper分页查询功能

MyBatis系列:分页查询

MYSQL复杂查询(条件不定查询+按降序/升序分页显示)

spring-boot 集合mybatis 的分页查询

Mybatis-plus系列使用Mybatis-plus的selectPage()分页查询没生效