Oracle结合Mybatis实现取表TOP 10条数据
网络编程 2021-07-05 16:09www.168986.cn编程入门
这篇文章主要介绍了Oracle结合Mybatis实现取表TOP 10条数据的相关资料,需要的朋友可以参考下
之前一直使用mysql和informix数据库,查表中前10条数据十分简单
最原始版本
select from student
,我们还可以写的复杂一点,比如外加一些查询条件?
比如查询前10条成绩大于80分的学生信息
添加了where查询条件的版本
select from table where score > 80
!!oracle中没有啊!!!!那么该如何实现呢?
嗯,可以用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 = '99' and score <![CDATA[>]]> #{scores,jdbcType=INTEGER}) where rn <![CDATA[<=]]> #{number,jdbcType=INTEGER} </select>
上面的scores和number均为变量
psmybatis取Oracle序列,值相同问题处理
<select id="getCode" resultType="java.lang.String"> select 'TRD'||to_char(sysdate,'yyyymmdd')||lpad(to_char(SQ_ORD_PURCHASE_ID.nextval), 5, '0') code from dual </select>
上述mybatis代码在调用是总是获取到同一个序列的值,查询相关资料得知是mybatis的缓存问题
加上useCache="false" flushCache="false"
属性即可
<select id="getCode" resultType="java.lang.String" useCache="false" flushCache="false"> select 'TRD'||to_char(sysdate,'yyyymmdd')||lpad(to_char(SQ_ORD_PURCHASE_ID.nextval), 5, '0') code from dual </select>
以上所述是长沙网络推广给大家介绍的Oracle结合Mybatis实现取表TOP 10条数据,希望对大家有所帮助,如果大家有任何疑问请给我留言,长沙网络推广会及时回复大家的。在此也非常感谢大家对狼蚁SEO网站的支持!
编程语言
- 甘肃哪有关键词排名优化购买方式有哪些
- 甘肃SEO如何做网站优化
- 河南seo关键词优化怎么做电话营销
- 北京SEO优化如何做QQ群营销
- 来宾百度关键词排名:提升您网站曝光率的关键
- 卢龙关键词优化:提升您网站排名的策略与技巧
- 山东网站优化的注意事项有哪些
- 四川整站优化怎样提升在搜索引擎中的排名
- 疏附整站优化:提升网站性能与用户体验的全新
- 海南seo主要做什么工作售后服务要做到哪些
- 荣昌百度网站优化:提升您网站的搜索引擎排名
- 河北seo网站排名关键词优化如何做SEO
- 江西优化关键词排名推广售后保障一般有哪些
- 古浪SEO优化:提升你的网站可见性
- 西藏网站排名优化怎么把网站排名在百度首页
- 如何提升阳东百度快照排名:详尽指南