mybatis中Oracle分页语句的写法
最近一段时间使用oracle数据库查询分页, 用的是springboot.
Oracle数据库中没有像mysql中limit的写法, 只能换其他方式写.
考虑到oracle中的ROWNUM变量, 使用它能做到分页查询.
看下面的mybatis的xml文件:
<select id="selectDevices" parameterType="java.util.Map" resultType="java.util.Map">
select
<include refid="Base_Column_List" />
from
(
SELECT
D.ID, D.NAME, D.AGE, ROWNUM RN
FROM
(
SELECT
ID, NAME, AGE
FROM
DEVICES
) D
WHERE ROWNUM <= #{rowCount,jdbcType=INTEGER}
)
WHERE RN >= #{offSet,jdbcType=INTEGER}
</select>
这里主要注意下面几个问题:
1. mybatis 中 SQL 写在mapper.xml文件中,而xml解析 < 、>、<=、>= 时会出错,这时应该使用转义写法, 两种方式
| < | <= | > | >= | & | ' | " |
| < | <= | > | >= | & | ' | " |
示例: num >= #{num}
或则直接
<![CDATA[ sql语句 ]]>
示例:num <![CDATA[ >= ]]> #{num}
2. 里面的rowCount参数和offSet参数的含义
例如: 规定每页显示10条数据, pageSize = 10, 下面就是前台传过来的数据
offSet=(currentPage–1)*pageSize + 1 , rowCount=currentPage*pageSize
第一页的话,currentPage=1, offSet=1, rowCount=10
第二页的话,currentPage=2, offSet=11, rowCount=20
第三页的话,currentPage=3, offSet=21, rowCount=30
等等
3. ROWNUM是oracle中特有的属性, 不要在mysql中使用
4. Oracle和Mysql关于like语句的写法, 如果要使用like方法:
示例定义: field_name为String类型
MyBatis+Oracle的like用法
field_name like '%'||#{field_name}||'%'
MyBatis+MySQL的like用法
field_name like concat('%',#{field_name},'%')
mybatis中Oracle分页语句的写法的更多相关文章
- Mybatis中动态SQL语句中的parameterType不同数据类型的用法
Mybatis中动态SQL语句中的parameterType不同数据类型的用法1. 简单数据类型, 此时#{id,jdbcType=INTEGER}中id可以取任意名字如#{a,jdbcType ...
- Sqlserver2008和Oracle分页语句
SqlServer 分页语句 select StuID ,StuNo,StuName,Age,Sex, ClassName ClassName from (select *, row_number() ...
- mybatis中的查询语句in用法的相关问题
在开发的时候,mybatisl中使用in的时候会遇到一些问题,如果我们传的参数是String类型,以“,”来进行隔开的,例如:参数是0,1,2字符串,mybatis中的语句如下 <select ...
- 控制台输出 mybatis 中的sql语句
控制台输出 mybatis 中的sql语句 在 log4j.xml 文件中 增加如下配置 <!-- mybatis 输出的sql,DEBUG级别 --> <logger name=& ...
- MyBatis中动态SQL语句完成多条件查询
一看这标题,我都感觉到是mybatis在动态SQL语句中的多条件查询是多么的强大,不仅让我们用SQL语句完成了对数据库的操作:还通过一些条件选择语句让我们SQL的多条件.动态查询更加容易.简洁.直观. ...
- MyBatis 中实现SQL语句中in的操作 (11)
MyBatis 中实现SQL语句中in的操作 概括:应用myBatis实现SQL查询中IN的操作 1.数据库结构及其数据 2.mapper.xml文件 <?xml version="1 ...
- mybatis中oracle实现分页效果
首先当我们需要通过xml格式处理sql语句时,经常会用到< ,<=,>,>=等符号,但是很容易引起xml格式的错误,这样会导致后台将xml字符串转换为xml文档时报错,从而导致 ...
- 关于SSM中mybatis向oracle添加语句采用序列自增的问题
在SSM向oracle数据库中插入语句时,报错如下: ### Error updating database. Cause: java.sql.SQLException: 不支持的特性 ### SQ ...
- 在mybatis中写sql语句的一些体会
本文会使用一个案例,就mybatis的一些基础语法进行讲解.案例中使用到的数据库表和对象如下: article表:这个表存放的是文章的基础信息 -- ------------------------- ...
随机推荐
- 51nod - 1586 - 约数和 - 打表 - 思维
https://www.51nod.com/Challenge/Problem.html#problemId=1586 一眼看过去居然一点思路都没有的,一言不合就打表,打贡献表. #include & ...
- 短篇文档兼职看过来 python 课后作业 assignment project
文档兼职 开题报告 读后感 课后作业 等 代写 编程,Java ,Python,R,等语言的,国内外课程作业指导,写作. 有经验,有作品,成交快,放心! 可联系 QQ 550987425
- java 快速开发平台 有代码生成器 springmvc SSM后台框架源码
. 权限管理:点开二级菜单进入三级菜单显示 角色(基础权限)和按钮权限 角色(基础权限): 分角色组和角色,独立分配菜单权限和增删改查权限. 按钮权限: 给角色分配按钮权限.2 ...
- 详聊js中的原型/原型链
先以一段简单的代码为例: function Dog(params){ this.name = param.name; this.age = param.age; this.ba ...
- Sql 统计一个表有多少列
SELECT COUNT(syscolumns.name) FROM syscolumns , sysobjects WHERE syscolumns.id = sysobjects.id AND s ...
- 2019 Multi-University Training Contest 3 Find the answer (离散化+二分+树状数组)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6609 题目大意:给定一个含有n个数的序列,还有一个m,对于每个i(1<=i<=n)求出最少 ...
- python数据分析第二版:pandas
一:pandas 两种数据结构:series和dataframe series:索引(索引自动生成)和标签(人为定义)组成---返回一个对象 obj = pd.Series([1,2,3,4]) ob ...
- python TypeError: must be str, not bytes错误
TypeError: must be str, not bytes错误: 解答: 写文件处 f=open(filename, 'w')应该写为 open(filename, 'wb') 读文件时 f= ...
- Git的配置与基本操作
Git是一个版本控制软件,它可以让我们能够拍摄处于可行状态的项目的快照,修改项目(如实现新功能)后,如果项目不能正常运行,可以恢复到前一个可行状态. 通过使用版本控制,我们可以无忧无虑的改进项目,不用 ...
- SPOJ VLATTICE - Visible Lattice Points 【“小”大数加减】
题目链接 一道比较简单的莫比乌斯反演,不过ans会爆long long,我是用结构体来存结果的,结构体中两个LL型变量分别存大于1e17和小于1e17的部分 #include<bits/stdc ...