一、动态条件处理

  需要使用mybatis的动态sql

 1 <select id="selectItemByCondition" parameterType="com.rl.ecps.model.QueryCondition" resultMap="BaseResultMap">
2 select *
3 from (select rownum rw, a.*
4 from (select * from eb_item t
5 <where>
6 <if test="brandId != null">t.brand_id = #{brandId}</if>
7 <if test="auditStatus != null"> and t.audit_status = #{auditStatus}</if>
8 <if test="showStatus != null"> and t.show_status = #{showStatus}</if>
9 <if test="itemName != null and itemName != ''"> and t.item_name like '%${itemName}%'</if>
10 </where>
11 <![CDATA[
12 ) a
13 where rownum < #{endNum}) b
14 where b.rw > #{startNum}
15 ]]>
16 </select>

二、分页

  Oracle的分页sql:

    oracle的分页必须要使用rownum(只支持小于号)      

select *
                from (select rownum rw, a.*
                                      from (select * from eb_item) a
                                      where rownum < 21) b
                 where b.rw > 10

   1、查询全量结果集

   2、以全量结果集作为一张表,以rownum作为查询条件小于开始行号,以全量结果集和rownum作为结果集,并给rownum起个别名

   3、以第二部为结果,查询rownum 大于其实行号

  

  分页思想:

    从查询角度,计算startNum和endNum  (需要pageNo 和 pageSize计算)

      startNum = (pageNo  - 1 ) *  pageSize ;

      endNum = pageNo * pageSize + 1;

    从展示角度,需要指导pageNo,   totalCount,   totalPage

      totalPage三种情况:

        totalCount   pageSize   totalPage

          0    10    1

          100   10    10

          92    10    10

1 public int getTotalPage() {
2 totalPage = totalCount/pageSize;
3 if(totalCount == 0 || totalCount % pageSize != 0){
4 totalPage++;
5 }
6 return totalPage;
7 }

最新文章

  1. Linux内存管理之bootmem分配器
  2. UIkit框架之uiUIapplication
  3. AX 2012 在Grid 中添加image标识状态
  4. 删除div
  5. IT男常用软件网站整理
  6. Mobile first! Wijmo 5 + Ionic Framework之:Hello World!
  7. JS中的集中页面跳转的方法
  8. SharePoint 2010 &quot;客户端不支持使用windows资源管理器打开此列表&quot; 解决方法
  9. 11.编写一个Java程序,计算半径为3.0的圆周长和面积并输出结果。把圆周率π定义为常量,半径定义为变量,然后进行计算并输出结果。
  10. the c programming language 2-3
  11. [转] 关于UIView
  12. 在mac os 中安装 autoconf and automake
  13. 51 Nod 1029 大数除法【Java大数乱搞】
  14. Easyui 修改jquery validatebox为英文校验提示为中文提示
  15. (并发编程)进程池线程池--提交任务2种方式+(异步回调)、协程--yield关键字 greenlet ,gevent模块
  16. Android 使用ColorMatrix改变图片颜色
  17. .net Core2建立MVC网站,部署
  18. MATLAB System Generator初识
  19. CSS3实现的苹果网站搜索框效果
  20. JavaScript:Object属性方法

热门文章

  1. Qt 怎样生成带图标的exe
  2. js动画和css3动画的区别
  3. Zigzags CodeForces - 1400D
  4. Android开发之http网络请求返回码问题集合。
  5. 写shader小细节——这个会不断更新
  6. indexOf原理,Java,javascript,python实现
  7. JVM学习第三天(JVM的执行子系统)之字节码指令
  8. input.nextLine()和input.next()的区别
  9. 让mvn打包时跳过Junit测试
  10. The relationship between Sonarcube coverage and code branch