关于mybatis的分页

发布于 2021-11-15 04:28:51 字数 127 浏览 865 评论 9

按照mybatis官方的文档 ,是定义一个mapper接口,并且接口不需任何实现,再定义mapper xml文件,然会找到方法对应的sql id,非常方便。但是分页的功能以前经常是放在Dao层实现。

大大们有没有什么好主意?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(9

多彩岁月 2021-11-18 08:43:26

public interface NewsMapper {

    List<News> getNews(Object params,RowBounds rowBounds);

   

}

这样定义就可以了。你在调用的时候传rowBounds实例进出就可以了。

英雄似剑 2021-11-18 08:40:25

<?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="mapper">

    <sql id="pageHeader">
    select  * from(select a.*,rownum rn from(
    </sql>
    <sql id="pageRoot">
      ) a where rownum <= #{endRow}) where rn >#{startRow}
    </sql>
   
</mapper>

    <!-- 查询试卷模板信息 -->
    <select id="listPaperTemplateByCondition"
        resultMap="paperTemplateResultMap" parameterType="Map">
        <include refid="pageHeader"/>
        select  paperTemplateId,templateName,depId,operNo,createDate,isSystem,totalMark,subject.subjectCode,subject.subjectName,stage.stageCode,stage.stageName
        from d_papertemplate papertemplate
        <include refid="pageRoot"/>
    </select>

<!-- 查询试卷模板数量 -->
    <select id="listPaperTemplateByConditionCount"
        resultType="int" parameterType="Map">
        select  count(1) from d_papertemplate
    </select>

南汐寒笙箫 2021-11-18 08:34:23

可以有实现类呀,如果需要你可以自己实现。就大多数情况而言完全不需要,

对于你说的分页情况,你觉得sql直接实现分页能满足你的需求,就不用写实现类,如果你觉得不能满足一定需要逻辑控制才能满足,那你就写实现吧,实现基本与使用用ibatis,hibernate差不多,没有什么特别。

猫九 2021-11-18 08:19:29

<?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="mapper">

    <sql id="pageHeader">
    select  * from(select a.*,rownum rn from(
    </sql>
    <sql id="pageRoot">
      ) a where rownum <= #{endRow}) where rn >#{startRow}
    </sql>
   
</mapper>

    <!-- 查询试卷模板信息 -->
    <select id="listPaperTemplateByCondition"
        resultMap="paperTemplateResultMap" parameterType="Map">
        <include refid="pageHeader"/>
        select  paperTemplateId,templateName,depId,operNo,createDate,isSystem,totalMark,subject.subjectCode,subject.subjectName,stage.stageCode,stage.stageName
        from d_papertemplate papertemplate
        <include refid="pageRoot"/>
    </select>

<!-- 查询试卷模板数量 -->
    <select id="listPaperTemplateByConditionCount"
        resultType="int" parameterType="Map">
        select  count(1) from d_papertemplate
    </select>

背叛残局 2021-11-18 06:50:07

引用来自#5楼“Dong”的帖子

没有实现类是什么情况?

少女情怀诗 2021-11-18 06:13:02

引用来自#3楼“Dong”的帖子

一般用sql来分页的

灵芸 2021-11-18 01:10:27

一般用sql来分页的

柒夜笙歌凉 2021-11-17 08:55:13

大家有什么好办法不~

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文