-
ORACLO分页
pageIndex pageSize 两个参数
查询一张表A
首先假设有某个条件限制,类似于两个时间之内,
select * from A where x between \’ a \’ AND \’b\’
然后将此结果集作为一张表,在加一个排序的伪列进来,
查询从零到当前页一共有多少数值
select a.*, rownum rn from (
select * from A where x between \’ a \’ AND \’b\’
) a where rn <= pageIndex * pageSize
此时查询的就是当前页最后一个数到第一个数的值,
最后再从此结果集中查询,此时就会用到之前设置的伪列
select * from(
select a.*, rownum rn from (
select * from A where x between \’ a \’ AND \’b\’
) a where rn <= pageIndex * pageSize
) where rn >=(pageIndex -1)*pageSize +1
-
SQL EXCEPRTION \”911\”错误
将分号(;) 一起复制到xml文件中, 导致调用接口时一直报错,SQL EXCEPRTION \”911\”
如果是写在程序里面的sql就不需要加分号结尾, 因为会把分号当做语句一起查询,
在数据库中可加 可不加, 加了就是认为你这条语句结束
- (ORACLE数据库,数据库BLOB字段, CLOB字段)
oracle数据库对于主键 , 设定了主键长度后, 如果主键长度不够, oracle会以空格自动补齐,可以打印长度来判断主键长度是否有空格,
CLOB字段一般用来保存长字符串, 对应实体类类型是Stirng
Blob字段以二进制保存图片等.对应实体类类型可以用byte[]数组来接受
-
#{}会预先处理参数, 会给参数加上引号, 例 #{test} \’test\’ ,并且可以防止sql语句被注入,
例 select * from student where name=#{inputName}
后台会解析 select * from student where name=?
${} 则是直接显示入参 , !!!!!可以直接用来传入表名
select * from ${student } where name=#{inputName} 或
select * from student order by ${入参} 会直接显示入参 进行排序
又或者在拼接sql,然后直接整个传入到mapper文件中 ${value}