性能优化之mybatis实现接口的批量查询,减少数据库的查询消耗
<select id="selectByTime" resultType="com.neo.xnol.api.activity.dto.ActivityMqmsgDTO"> SELECT id, eventType, eventId, userId, userName, content, msgStatus, retryCount, errorDetails, createTime, updateTime, msgVersion, sysVersion FROM t_activity_mqmsg WHERE userId= #{userId} AND eventType IN <foreach collection="eventTypeList" index="index" item="item" open="(" separator="," close=")"> #{item} </foreach> AND createTime >= #{beginTime} AND createTime <= #{endTime} ORDER BY createTime </select>
<select id="findActivityInfoListByCategoryId" resultMap="BaseResultMap" > SELECT a.* FROM t_activity_info a WHERE a.categoryId in <foreach collection="list" item="categoryId" open="(" close=")" separator=","> #{categoryId} </foreach> and a.isDelete = 0 and a.`endTime` > now() <if test="organizationId != null and organizationId != 3"> AND a.organizationId = #{organizationId,jdbcType=INTEGER} </if> ORDER BY a.createTime DESC </select>
<select id="selectOneByRewardType" resultMap="BaseResultMap"> select w.* from t_lucky_winning w inner join t_lucky_activity a on w.luckyId = a.luckyId and a.activityId = #{activityId,jdbcType=INTEGER} inner join t_lucky_reward r on w.rewardId = r.id where r.rewardId in( <foreach collection="rewardIds" item="rewardId" separator=","> #{rewardId,jdbcType=INTEGER} </foreach>) order by w.luckytime desc limit 1 </select>
作者:Agoly 出处:https://www.cnblogs.com/qmfsun/ 本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。 如果文中有什么错误,欢迎指出。以免更多的人被误导。 |