一、大数据的分页显示
1、内存分页:不建议使用
2、数据库分页
分页语句:不同数据库不同
MySql:
limit M,N
M:开始记录的索引,从0开始
N:每页显示的条数
每页显示10条记录,取第1页
select * from customer limit 0,10
第2页
select * from customer limit 10,10
第3页
select * from customer limit 20,10
开始记录的索引=(页码-1)*每页显示的记录数
二、改造
1、增加Page类:所有分页有关的都找此类
2、改造Dao:
取分页数据
获取总记录数
3、改造Service
Page findPageRecords(String pageNum)
4、改造页面
三、使用公共代码:Page.java page.jsp
1、Dao:取分页数据
获取总记录数
List<Customer> findPageRecords(int startIndex,int pageSize);
int findTotalRecords();
2、Service:
Page findPageRecords(String pageNum)
3、Servlet:
传入一个请求参数:名为pageNum。用户想看的页码
数据调用service,得到Page对象。
page.setUrl(request.getServletPath());
4、JSP中静态包含page.jsp
四、Connection中与事务有关的方法:
conn.setAutoCommit(false):开启事务。关闭事务的自动行为
conn.rollback():回滚
conn.commit():提交
五、事务的隔离级别
如果不考虑,多线程环境下开启的事务隔离性问题,会显现以下不正确的结果:
1、脏读:A事务读到了B事务未提交的数据
2、不可重复读:A事务前后读取到的同一条数据不一致。
3、虚读:A事务读到了B事务插入的新记录。
隔离级别四种:
1、READ UNCOMMITTED:脏读、不可重复读、虚读都不能避免。
2、READ COMMITTED:避免脏读;不可重复读、虚读有可能发生。
3、REPEATABLE READ:避免脏读、不可重复读;虚读有可能发生。
4、SERIALIZABLE:避免脏读、不可重复读、虚读。
1、内存分页:不建议使用
2、数据库分页
分页语句:不同数据库不同
MySql:
limit M,N
M:开始记录的索引,从0开始
N:每页显示的条数
每页显示10条记录,取第1页
select * from customer limit 0,10
第2页
select * from customer limit 10,10
第3页
select * from customer limit 20,10
开始记录的索引=(页码-1)*每页显示的记录数
二、改造
1、增加Page类:所有分页有关的都找此类
2、改造Dao:
取分页数据
获取总记录数
3、改造Service
Page findPageRecords(String pageNum)
4、改造页面
三、使用公共代码:Page.java page.jsp
1、Dao:取分页数据
获取总记录数
List<Customer> findPageRecords(int startIndex,int pageSize);
int findTotalRecords();
2、Service:
Page findPageRecords(String pageNum)
3、Servlet:
传入一个请求参数:名为pageNum。用户想看的页码
数据调用service,得到Page对象。
page.setUrl(request.getServletPath());
4、JSP中静态包含page.jsp
四、Connection中与事务有关的方法:
conn.setAutoCommit(false):开启事务。关闭事务的自动行为
conn.rollback():回滚
conn.commit():提交
五、事务的隔离级别
如果不考虑,多线程环境下开启的事务隔离性问题,会显现以下不正确的结果:
1、脏读:A事务读到了B事务未提交的数据
2、不可重复读:A事务前后读取到的同一条数据不一致。
3、虚读:A事务读到了B事务插入的新记录。
隔离级别四种:
1、READ UNCOMMITTED:脏读、不可重复读、虚读都不能避免。
2、READ COMMITTED:避免脏读;不可重复读、虚读有可能发生。
3、REPEATABLE READ:避免脏读、不可重复读;虚读有可能发生。
4、SERIALIZABLE:避免脏读、不可重复读、虚读。