Impl如下: List<PMeSendToPhone> pMeSendToPhonesList = pMeSendToPhoneMapper.querySendToPhone();
Mapper如下: List<PMeSendToPhone> querySendToPhone();
Mapper.xml如下:
<select id="querySendToPhone" resultMap="BaseResultMap" fetchSize="1000">
select bind.phone , bind.openid from P_ME_SEND_TO_PHONE phone , p_user_bind_phone bind
<where>
bind.phone = phone.phone
</where>
</select>
注意如上红色fetchSize:
这个是给select语句增加fetchSize属性,底层是调用jdbc的setFetchSize方法,查询时从结果集里面每次取设置的行数,循环去取,直到取完。默认size是0,也就是默认会一次性把结果集的数据全部取出来,当结果集数据量很大时就容易造成内存溢出。
如果不增加的话,查询的那是相当的慢,不只是慢,很有可能出问题。切记!
本文详细解析了MyBatis中fetchSize属性的作用,该属性通过限制每次从数据库结果集中读取的行数来优化查询性能,避免大量数据查询时导致的内存溢出问题。文章提供了具体的代码示例,展示了如何在Mapper接口和XML文件中设置fetchSize,以及其对查询速度和系统稳定性的影响。
1153

被折叠的 条评论
为什么被折叠?



