黑马程序员——day13数据库分页

来源:互联网 发布:java 继承泛型类 编辑:程序博客网 时间:2024/05/16 10:41

            今天的课听的我太晕了,一个客户管理系统让我之前的一些东西都忘记了,然后讲了个数据库分页,乱死了。珽哥说今天还不算什么,明天有点难度,我怕我真是跟不上了,几个小项目没一个能自己全写出来的。还有3天的课就放假了,过年不回家了(23年来第一次不回家过年,有点对不起亲人们,不过这一切都是值得的),把这些东西都复习复习,项目都弄懂它。今晚搞到2点,明天还得交代码,上帝保佑吧。

               珽哥,猥琐界的一朵奇葩,今天吃饭睡觉看娜姐那段子,各种小幽默,各种小邪恶。

            

一、客户管理系统(web项目CRUD)
二、大数据分页(有难度)
1、MySQL对分页的支持:
SELECT * FROM customer LIMIT m,n;
m:每页第一条记录的索引。(第一页的第一条的索引号是0)
n:每页显示的条数


每页显示10条
第一页:SELECT * FROM customer LIMIT 0,10;
第二页:SELECT * FROM customer LIMIT 10,10;
第三页:SELECT * FROM customer LIMIT 20,10;


每页开始的记录索引=(当前页码-1)*10;




总共多少页?
总页数=总记录数%10==0?总记录数/10:总记录数/10+1




2、改造Dao
只能做2件事:
a、查询出记录的总条数
b、根据索引和每页显示的条数查出记录
/**
 * 获取记录的总条数
 * @return
 */
int getTotalRecords();
/**
 * 查询分页数据
 * @param startindex 每页开始记录的索引
 * @param pagesize 每页显示条数
 * @return
 */
List<Customer> findPageCustomers(int startindex,int pagesize);


3、引入一个与分页有关的类:Page
所有与分页有关的数据都找Page要。
private List records;//页面显示的分页数据     Dao可以查出来           
private int pagenum;//当前页码                                用户可以传进来                  *
private int totalpage;//总页数                               可以算出来                             *
private int pagesize=10;//每页显示的记录条数                                                  *
private int startindex;//每页开始记录的索引            可以算出来               *
private int totalrecords;//总记录数                                                                        *


public Page(int pagenum,int totalrecords){
this.pagenum = pagenum;
this.totalrecords = totalrecords;
//计算总页数
totalpage = totalrecords%pagesize==0?totalrecords/pagesize:(totalrecords/pagesize+1);
//计算每页开始记录的索引
startindex = (pagenum-1)*pagesize;
}


4、改造Service
客户端只能传递一个页码过来,没有的话默认查第1页数据;
所有的分页有关数据都封装到Page对象。
/**
 * 查询分页数据
 * @param pagenum 字符串类型的页码
 * @return 封装了分页数据的Page对象
 */
Page findPageRecords(String pagenum);


5、改造Servlet层



三、大数据存取:Clob Blob存取
存取都是基于IO流


实际开发中不用:解决方案,文件上传和下载。

四、批处理
五、获取数据库自动生成主键


六、调用存储过程
七、事务入门(TPL)
八、事务的概念
九、事务的隔离级别(有难度)

原创粉丝点击