JavaWeb分页查询思路剖析

**

JavaWeb分页查询思路剖析

**案例分析:

前端-->后台:  

     1. 当前端需要对某项数据进行条件查询时, 需要给出查询条件, 故得出第一个参数: "查询条件";
     2. 当查询结果过多,无法全部显示, 或全部显示页面不够清晰友好时, 需要对查询结果进行分页显示, 故得出第二个参数: "目标页页数":
         目标页页数: 初始页数为1, 用户选择响应按钮时, 即确认出新的"目标页页数""; 
     3. 当需要按某种顺序查看查询结果时, 需要将查询结果按条件排序,故得出第三个参数: "排序条件"; 

 后台-->前端: 

     1. 当前端需要向客户展示信息时, 需要拿到显示的内容,故得第一个参数: "当前页查询结果集合";
     2. 同时我们需要在前端显示分页条, 以京东分页条为例分析:
        
         a. 上一页/ 下一页/ 其它目标页页数, 都可由当前页数或直接选择得出, 故得出第二个参数: "当前页数";
         b. 总页数需要由: 查询结果总数 和 每页显示结果数 得出, 故得出第三个参数: "查询结果总数", 第四个参数: "每页显示条数";
         c. 当总页数大于一定值时, 显示出所有页数的对应选择按钮, 影响展示效果和用户体验, 故仅显示某些页面按钮即可:
             如:
                 展示 首页/ 尾页 按钮;
                 展示 上一页/ 下一页 按钮;
                 展示 当前页前几页/ 当前页后几页 按钮;
                 展示 页面跳转的输入框/ 确认跳转按钮;
             因而得出第五个参数: "之前可选页数", 第六个参数: "之后可选页数"; 

 根据分析得出: 

     前端-->后台 参数:
         1. 查询条件;
         2. 目标页页数;
         3. 排序条件;
     后台-->前端 参数:
         1. 当前页查询结果集合;
         2. 当前页数;
         3. 查询结果总数; (所有查询条件的结果总数)
         4. 每页显示条数;
         5. 之前可选页数;
         6. 之后可选页数;

编程思想:

后台业务逻辑思路:

1.每页显示条数:一般根据用户体验/ 排版要求等确定, 故直接在后台给出(或配置文件导入);
        2.目标页查询结果集合: 根据查询条件/ 当前页数/ 排序条件 及每页显示条数, 可以得到sql语句的 “伪代码” :
            “select * from 数据库表 where 查询条件 sort by 排序条件 limit 起始位置,每页显示条数;” ;
        3. 当前页数: 即前台传递给后台的目标页数, 因前台页面不直接通信, 故回传给前台即可;
        4. 查询结果总数: 根据:查询条件,可得到sql语句的 “伪代码” :
            “select count(*) from 数据库表 where 查询条件;” ;
        5. 之前可选页数: 根据总页数/ 当前页数/ "前m后n"展示效果的 m/ n数值得出;
        6. 之后可选页数: 同上(5);

整体架构:

Web分页查询功能实现涉及:前端页面/ 后台业务逻辑处理/ 数据库查询/ 查询结果回传等, 故基于MVC模式思想 并采用"经典三层体系架构":表示层/ 业务逻辑层/ 数据访问层;

基本思维:

1. 面向对象: 
            a. 单个查询结果是一个整体数据集, 故封装为实体类对象, 如商品对象/ 联系人信息对象/ 学生信息对象等; 
            b. 后端传递给前端的所有涉及分页查询数据, 可抽象为一个具有实体类性质的工具类, 并加入简单业务逻辑方法: 如计算:总页数/ 排序起始位置数 等;
        2. 代码复用:
            a. 代码复用的第一个体现就是 三层体系架构, 不再赘述;
            b. 工具类的适当使用:
                i. 数据库相关代码, 如: 注册/ 配置/ 流的关闭/连接池使用等, 封装成工具类, 使用时仅创建对象(静态方法可省略此步), 编写sql语句和提交参数即可;
                ii. 复用性较高/ 代码量较大的其它业务逻辑, 封装成工具类, 使用时传入参数得到结果集即可, 如本例中: "根据总页数/ 当前页数/ “前m后n"展示效果的 m/ n数值得出:之前和之后可选页数”;
                    注意: 这里的复用性高一定程度指的是职业生涯和公司所有项目中的复用, 而不仅是指当前项目;

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值