分页的简单实现
重点关注分页功能中Mybatis部分的内容(观察Mybatis的介入和之前的分页有何不同)
该分页功能的参数:
1、记录总数。
2、每页显示记录数。
3、总页数。
4、当前页。
5、分页查询Limit的起始点。
6、分页查询Limit的返回个数。
通常封装一个类来实现分页功能:
Mysql使用Limit进行分页。Limit关键字需要两个参数,一个是从第几条开始取,另一个是取多少条。
该类中还封装了计算总页数的方法,并且可以计算出Limit需要的两个参数值,然后放到该类对象里供程序使用,如下图1,如果传进来的当前页数大于总页数,就把当前页数置为最后一页(也可以在前端页面进行设置,这里都在后端实现)如图2,还需保证当前页数不能小于1,如果小于1,则把它置为1。如图3,最后还需要计算sql语句Limit需要的参数,如图4。
执行逻辑之前可以先查看Limit语句,第一页是从第0条开始获取,取5条。第二页是从第5条开始取,取5条,以此类推。
分页查询过程:
预先定义好当前页面记录数和当前页面数,通过查询出来的记录数,可以计算出总页数,Limit的参数也就获取到了,这样Dao层就将Page对象交给XML,XML根据这两个参数查询,然后将查询的结果返回。
Mybatis如果想传入XML两个参数时,可以使用Map集合。
分页查询一般来说是按照某一字段进行排序,而且该字段值最好不要重复,可以是主键或者该字段创建的时间createTime,如果不主动设置排序方式,按照数据库默认排序方式,并不能保证每次执行sql语句的默认排序方式都是相同的。
前端的javascript的校验相当于没有校验,所以如果考虑安全的问题时,在后端也需要加上校验。
分页的简单实现
重点关注分页功能中Mybatis部分的内容(观察Mybatis的介入和之前的分页有何不同)
该分页功能的参数:
1、记录总数。
2、每页显示记录数。
3、总页数。
4、当前页。
5、分页查询Limit的起始点。
6、分页查询Limit的返回个数。
通常封装一个类来实现分页功能:
Mysql使用Limit进行分页。Limit关键字需要两个参数,一个是从第几条开始取,另一个是取多少条。
该类中还封装了计算总页数的方法,并且可以计算出Limit需要的两个参数值,然后放到该类对象里供程序使用,如下图1,如果传进来的当前页数大于总页数,就把当前页数置为最后一页(也可以在前端页面进行设置,这里都在后端实现)如图2,还需保证当前页数不能小于1,如果小于1,则把它置为1。如图3,最后还需要计算sql语句Limit需要的参数,如图4。
执行逻辑之前可以先查看Limit语句,第一页是从第0条开始获取,取5条。第二页是从第5条开始取,取5条,以此类推。
分页查询过程:
预先定义好当前页面记录数和当前页面数,通过查询出来的记录数,可以计算出总页数,Limit的参数也就获取到了,这样Dao层就将Page对象交给XML,XML根据这两个参数查询,然后将查询的结果返回。
Mybatis如果想传入XML两个参数时,可以使用Map集合。
分页查询一般来说是按照某一字段进行排序,而且该字段值最好不要重复,可以是主键或者该字段创建的时间createTime,如果不主动设置排序方式,按照数据库默认排序方式,并不能保证每次执行sql语句的默认排序方式都是相同的。
前端的javascript的校验相当于没有校验,所以如果考虑安全的问题时,在后端也需要加上校验。