第一種:建構多表連接配接sql語句 第二種:iBATIS.NET DataMapper 1.1中,添加了groupBy特性用來解決N+1問題 <resultMap class="com.tj_zhongzhixin.entity.Store" id="storeMap" groupBy="sto_id"> <result property="sto_id" column="sto_id"/> <result property="sto_name" column="sto_name"/> <result property="sto_contactphone" column="sto_contactphone"/> <result property="sto_time" column="sto_time" javaType="string" /> <result property="listQuote" resultMap="getListQuote" /> </resultMap> <resultMap class="com.tj_zhongzhixin.entity.Quote" id="getListQuote"> <result property="quoId" column="quo_id" /> <result property="quoPrice" column="quo_price" /> </resultMap> <statement id="selectListStore" resultClass="com.tj_zhongzhixin.entity.Store" resultMap="storeMap" parameterClass="com.tj_zhongzhixin.common.util.PageResult" > select q.quo_id,q.quo_price,s.sto_id,s.sto_name,s.sto_contactphone,s.sto_time from store as s,quote as q where s.sto_id=q.quo_storeId limit #pageSize# offset #throwRows# </statement> groupby屬性解決了查詢N次父記錄的同時查詢N次子記錄 他隻執行一次查詢(父查詢和子查詢同時執行) http://hi.baidu.com/zhifeichuan/ |