【Oracle/MyBatis】Oracle分页语句在MyBatis的Mapper.xml中的实际运用

【前篇】

Oracle的三种分页方式

【Mapper类中的对应函数】

复制代码
package com.hy.mapper;

import com.hy.entity.Project;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;

@Mapper
public interface ProjectMapper {
...
    List<Project> pagedQueryPrj(String keyword,long uid, int start, int end);
}
复制代码

【Mapper.xml】

复制代码
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" 
                    "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.hy.mapper.ProjectMapper">

    <select id="pagedQueryPrj" resultType="com.hy.entity.Project">
        select * from (select tta.*,rownum as rn from (

        select a.id,a.name,to_char(a.create_time,'yyyy-mm-dd hh24:mi:ss') as createTime,0 as taskCnt
        from dmo_project  a
        where a.userid=#{uid}
        <if test="keyword != null and keyword !=''">
            AND a.name LIKE '%'||#{keyword,jdbcType=VARCHAR}||'%'
        </if>

        ) tta where rownum &lt;=#{end} ) ttb where ttb.rn &gt;#{start}
    </select>
</mapper>
复制代码

说明:select节点里的SQL分蓝色外层和肉色内层两部分,内层是实际SQL,是要根据业务改变的;外层就是固定分页语句,一点也不需要动。

 

END

 

posted @   逆火狂飙  阅读(538)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)
生当作人杰 死亦为鬼雄 至今思项羽 不肯过江东
点击右上角即可分享
微信分享提示