mybatis动态条件组合分页查询
一、动态条件处理
需要使用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 }
mybatis动态条件组合分页查询的更多相关文章
- Spring Data JPA 复杂/多条件组合分页查询
推荐视频: http://www.icoolxue.com/album/show/358 public Map<String, Object> getWeeklyBySearch(fina ...
- MongoDB动态条件之分页查询
一.使用QueryByExampleExecutor 1. 继承MongoRepository public interface StudentRepository extends MongoRepo ...
- mysq带条件的分页查询数据结果错误
记一次mysql分页条件查询的结果出错: 以一张用户表为例,首先我们看表中的所有数据,注意红色框住的部分: 我们使用不带条件的分页查询来查询,数据显示是OK的: SELECT id,login_nam ...
- Java基础-SSM之mybatis的统计函数和分页查询
Java基础-SSM之mybatis的统计函数和分页查询 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任.
- laravel 带条件的分页查询
laravel 带条件的分页查询, 原文:http://blog.csdn.net/u011020900/article/details/52369094 bug:断点查询,点击分页,查询条件消失. ...
- spring mongodb分页,动态条件、字段查询
使用MongRepository public interface VideoRepository extends MongoRepository<Video, String> { Vid ...
- Mybatis动态sql及分页、特殊符号
目的: mybatis动态sql(案例:万能查询) 查询返回结果集的处理 mybatis的分页运用 mybatis的特殊符号 mybatis动态sql(案例:万能查询) 根据id查询 模糊查询 (参数 ...
- mybatis动态sql以及分页
1.mybatis动态sql 2.模糊查询 3.查询返回结果集的处理 4.分页查询 5.特殊字符处理 1.mybatis动态sql If.trim.foreach If 标签判断某一字段是否为空 &l ...
- MyBatis动态条件、一对多、整合spring(二)
输入映射和输出映射 Mapper.xml映射文件定义了操作数据库的sql,每一个sql是一个statement,映射文件是mybatis的核心. parameterType输入类型 1.传递简单类型 ...
随机推荐
- Fiddler扩展——导出Jmeter脚本
前言 Fiddler,对于大家而言,应该早已耳熟能详,是个抓包神器,具体的使用,我就不多说了.如果对Fiddler的使用还不太熟练,可以翻看我以前一系列的博文.我罗列出来,方便大家阅读,如下所示: 1 ...
- .NET ORM 导航属性【到底】可以解决什么问题?
写在开头 从最早期入门时的单表操作, 到后来接触了 left join.right join.inner join 查询, 因为经费有限,需要不断在多表查询中折腾解决实际需求,不知道是否有过这样的经历 ...
- Java高级特性——反射机制(第三篇)
获取类运行时的结构 通过反射获取运行时类的完整结构 Field.Method.Constructor.Superclass.Interface.Annotation >实现的全部接口 >所 ...
- wmz的数数(数状数组)
wmz的数数(数状数组) 题目描述 \(wmz\)从小就显现出了过人的天赋,他出生的第三天就证明了哥德巴赫猜想,第五天就证明了质能方程,出生一星期之后,他觉得\(P\)是否等于\(NP\)这个问题比前 ...
- Shader Graph
About Shader Graph https://docs.unity3d.com/Packages/com.unity.shadergraph@7.3/manual/index.html uni ...
- 微信小程序|小游戏
[官]小游戏开发 https://developers.weixin.qq.com/minigame/dev/index.html 官网 https://mp.weixin.qq.com 做了4个微信 ...
- or2?Scum!(周期性求解)
链接:https://ac.nowcoder.com/acm/contest/316/E 来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 131072K,其他语言2621 ...
- [BUUOJ记录] [BJDCTF 2nd]文件探测
感觉算是这次比赛里面综合性很强的一道题了,主要考察SSRF.PHP伪协议包含.挖掘逻辑漏洞和一个小tirck.委屈的是第一天晚上就做到了最后一步,想到了SESSION置空即可绕过,但是最后读Flag姿 ...
- 读网文《将20M文件从30秒压缩到1秒,我是如何做到的?》做实验
先在微信公众号上看到网文<将20M文件从30秒压缩到1秒,我是如何做到的?>,然后在网上搜索了一下,看到了原文:https://www.jianshu.com/p/2e46ccb125ef ...
- python连接websocket wss
def websocket_wss(): try: wss = create_connection(wss_url, timeout=10) if wss.status == 101: wss.sen ...