- 为什么使用分页查询:
- 数据量过大,一页容不下,使用分页技术后台查询部分数据而不是全部数据。
- 降低带宽使用,提高访问速度。
- 分页的核心和数据库查询操作有关。
- 分页工具PageBean:
- 提供面向对象的PageBean,降低分页难度,实现功能重用
- PageBean的三个基本属性:
- 1.每页几条记录size 可以有默认值5
- 2.当前页号 index 可以有默认值1
- 3.记录总数totalCount:没有默认值,需查询数据库获取真正记录总数
- 一共多少页 :
- totalPageCount=totalCount/size+1
- 带条件分页查询后台流程
- 控制层
- 获取当前页号
- 将当前页号给PageBean
- 传递PageBean到业务层
- 业务层
- 获取记录总数
- 使用记录总数计算PageBean其他属性值
- 调用数据访问层获取当前页数据并给PageBean
- 数据访问层
- 分页查询语句
- 数据访问层
- 分页查询语句:
- Oracle :复杂 三层子查询
- MySQL:简单 select * from student limit 5,5//start,size
- 示例:
- orcal
--分页展示 rownum:行号(伪列)
Mysql:
SELECT
- 项目组代码和注意事项
- 视图层:
- 查询表单
- 记忆查询条件
- 控制层:
- 获取表单数据,将表单数据(查询条件)传递到业务层
- 业务层:
- 获取符合查询条件的记录总数
- 获取符合查询条件的记录数据
- DAO层:
- 改变SQL查询语句,需要根据查询条件拼接SQL语句
- 上传文件到指定目录:
- 稍微复杂一些 直接使用Servlet实现有难度,一般使用apache commons组件中commons-fileUpload组件,大
- 大降低操作的难度。
- commons-fileUpload离不开commons-io组件
- commons-fileUpload的常用类
- FileItemFactory DiskFileItemFactory:工厂类,生产FileItem
- FileItem:每个表单项都会被封装成一个FileItem对象
- ServletFileUpload:实现上传操作,将表单数据封装到FileItem中
- FileItem类的方法:
- item.isFormField():是否是file表单项 是file返回false 不是true
- item.getFieldName():表单项的name属性
- item.getString():对于非file的表单项,value属性的值;对于file表单项,是文件内容
- item.getName():对于file表单项上传文件的名字 对于非file的返回null
- item.getContentType():对于file表单项上传文件的类型 对于非file的返回null
- item.getSize():对于file表单项,上传文件的大小,对于非file表单项,value值得宽度
- 理解下载思路:
- 不需要额外组件,会使用IO流,是连接服务器和客户端,不是本地的
- 使用response内建对象得到发送给客户端的输出流
- 需求说明:
- 上传文件到服务器,不保存相关信息到数据库,只涉及视图层和控制层
- 实现步骤
- 添加jar
- commons-fileupload.jar 和commons-io.jar
- 视图层:
<
- 业务层:
package