关于mybatis的分页
按照mybatis官方的文档 ,是定义一个mapper接口,并且接口不需任何实现,再定义mapper xml文件,然会找到方法对应的sql id,非常方便。但是分页的功能以前经常是放在Dao层实现。
大大们有没有什么好主意?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
按照mybatis官方的文档 ,是定义一个mapper接口,并且接口不需任何实现,再定义mapper xml文件,然会找到方法对应的sql id,非常方便。但是分页的功能以前经常是放在Dao层实现。
大大们有没有什么好主意?
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(9)
public interface NewsMapper {
List<News> getNews(Object params,RowBounds rowBounds);
}
这样定义就可以了。你在调用的时候传rowBounds实例进出就可以了。
<?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>
可以有实现类呀,如果需要你可以自己实现。就大多数情况而言完全不需要,
对于你说的分页情况,你觉得sql直接实现分页能满足你的需求,就不用写实现类,如果你觉得不能满足一定需要逻辑控制才能满足,那你就写实现吧,实现基本与使用用ibatis,hibernate差不多,没有什么特别。
这个答案相信你会满意
http://badqiu.iteye.com/blog/493884
http://rapid-framework.googlecode.com/svn/trunk/rapid-framework/src/rapid_framework_common/cn/org/rapid_framework/jdbc/dialect/
<?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>
引用来自#5楼“Dong”的帖子
没有实现类是什么情况?
引用来自#3楼“Dong”的帖子
一般用sql来分页的
一般用sql来分页的
大家有什么好办法不~