Mybatis分页查询主从表的实现示例
作者:MyFreeIT
本文主要介绍了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分页查询主从表内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!