Mybatis分页查询主从表的实现示例
先主查询,再关联子查询,不影响分页效果,否则子查询也会参与分页。
<resultMap id="Hdr" type="com.Hdr"> <id column="crh_id" property="id" javaType="int"/> <collection property="DtlList" select="queryAllRmdDetail" column="crh_id" fetchType="eager"> </collection> </resultMap>
<resultMap id="Dtl" type="com.Dtl"> </resultMap>
主查询:
<select id="queryByCondition" parameterType="String" resultMap="Hdr"> </select>
在主查询后,通过传入主键id进行关联子查询:
<select id="queryAllDetail" parameterType="int" resultMap="Dtl"> SELECT * FROM biz_dtl WHERE crh_id = #{id} </select>
主查询的结果是List,以及每一条记录的内涵List,性能是N+1次查询。
如果提高查询性能,可以使用别名的方式,在SQL中把子查询进行重新命名。
不过如果主查询包括SUM和Group语句,这种方式就不可以。
只有在平铺所有主从表的时候可用。
<resultMap id="blogResult" type="Blog"> <id property="id" column="blog_id" /> <result property="title" column="blog_title"/> <collection property="posts" ofType="Post" resultMap="blogPostResult" columnPrefix="post_"/> </resultMap> <resultMap id="blogPostResult" type="Post"> <id property="id" column="id"/> <result property="subject" column="subject"/> <result property="body" column="body"/> </resultMap>
到此这篇关于Mybatis分页查询主从表的实现示例的文章就介绍到这了,更多相关Mybatis分页查询主从表内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
如何自定义Jackson序列化 @JsonSerialize
这篇文章主要介绍了如何自定义Jackson序列化 @JsonSerialize,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教2021-12-12Spring MVC 前端控制器 (DispatcherServlet)处理流程解析
DispatcherServlet是前置控制器,配置在web.xml文件中的,这篇文章主要介绍了Spring MVC 前端控制器 (DispatcherServlet)处理流程,需要的朋友可以参考下2022-05-05Springboot项目基于Devtools实现热部署步骤详解
这篇文章主要介绍了Springboot项目基于Devtools实现热部署,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下2020-06-06Java线程并发工具类CountDownLatch原理及用法
这篇文章主要介绍了Java线程并发工具类CountDownLatch原理及用法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下2019-10-10
最新评论