首页 > 数据库 > mysql教程 > Oracle结合Mybatis实现取表的10条数据

Oracle结合Mybatis实现取表的10条数据

小云云
发布: 2017-12-11 14:38:57
原创
2757 人浏览过

之前一直使用mysql和informix数据库,查表中前10条数据十分简单:本文主要介绍了Oracle结合Mybatis实现取表的10条数据的相关资料,需要的朋友可以参考下,希望能帮助到大家。

最原始版本:

select top * from student
登录后复制


当然,我们还可以写的复杂一点,比如外加一些查询条件?

比如查询前10条成绩大于80分的学生信息

添加了where查询条件的版本:

select top * from table where score > 80
登录后复制

但是!!oracle中没有top啊!!!!那么该如何实现呢?

嗯,可以用rownum!

oracle中原始版本

select * from student where rownum < 10
登录后复制

上面这个好像也没有复杂的地方。。但是问题来了,如果我们还希望加上分数大于80呢?

对于我这个oracle初学者来说,真的是费力。在这里就直接贴出来了,希望可以让一些人少费一些力!

oracle添加了where查询条件的版本

select * from(
  select rownum rn,A.* from student where score > 80) 
where rn < 10
登录后复制

简单分析一下上面的代码。实际上是先通过内嵌的sql语句查询出分数大于80的数据,再选择内嵌sql查询结果中的前10条数据

最后附上mybatis代码?

<select id="selectStudent" parameterType="hashmap" resultMap="BaseResultMap">
  select *
  from (
  select rownum rn, A.* from student A
  where STATUS = &#39;99&#39;
  and score <![CDATA[>]]> #{scores,jdbcType=INTEGER}) 
  where rn <![CDATA[<=]]> #{number,jdbcType=INTEGER}
 </select>
登录后复制

上面的scores和number均为变量

ps:mybatis取Oracle序列,值相同问题处理

<select id="getCode" resultType="java.lang.String">
  select &#39;TRD&#39;||to_char(sysdate,&#39;yyyymmdd&#39;)||lpad(to_char(SQ_ORD_PURCHASE_ID.nextval), 5, &#39;0&#39;) code from dual
</select>
登录后复制

上述mybatis代码在调用是总是获取到同一个序列的值,查询相关资料得知是mybatis的缓存问题:

加上useCache="false" flushCache="false" 属性即可:

<select id="getCode" resultType="java.lang.String" useCache="false" flushCache="false">
select &#39;TRD&#39;||to_char(sysdate,&#39;yyyymmdd&#39;)||lpad(to_char(SQ_ORD_PURCHASE_ID.nextval), 5, &#39;0&#39;) code from dual
</select>
登录后复制

相关推荐:

Oracle如何更改表空间的数据文件位置

如何修改Oracle数据库表中字段顺序

oracle 查询表名以及表的列名

以上是Oracle结合Mybatis实现取表的10条数据的详细内容。更多信息请关注PHP中文网其他相关文章!

相关标签:
来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
java - Mybatis映射问题
来自于 1970-01-01 08:00:00
0
0
0
java - mybatis里的REGEXP
来自于 1970-01-01 08:00:00
0
0
0
java - spring boot 集成mybatis 注解版查询
来自于 1970-01-01 08:00:00
0
0
0
java - Mybatis关联查询
来自于 1970-01-01 08:00:00
0
0
0
java - Spring boot mybatis 自定义转换器问题
来自于 1970-01-01 08:00:00
0
0
0
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板