怎么解决mybatis in查询条件过长的问题
发表于:2025-11-07 作者:千家信息网编辑
千家信息网最后更新 2025年11月07日,怎么解决mybatis in查询条件过长的问题,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。mybatis in查询条件过长的解决方
千家信息网最后更新 2025年11月07日怎么解决mybatis in查询条件过长的问题
怎么解决mybatis in查询条件过长的问题,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。
mybatis in查询条件过长的解决
方法1:分次查询,将参数且分割成多个短的查询后合并
代码:
int splitNum =(int) Math.ceil( (float) ids.length/999); //切片数量 ListitemIdList = new ArrayList<>(Arrays.asList(ids)); List > splitList = averageAssign(itemIdList, splitNum); for (List
list : splitList) { param.put("itemIds",list); List
将list分成N等分方法方法:
public staticList > averageAssign(List
source,int n){ List > result=new ArrayList
>(); int remaider=source.size()%n; //(先计算出余数) int number=source.size()/n; //然后是商 int offset=0;//偏移量 for(int i=0;i
value=null; if(remaider>0){ value=source.subList(i*number+offset, (i+1)*number+offset+1); remaider--; offset++; }else{ value=source.subList(i*number+offset, (i+1)*number+offset); } result.add(value); } return result; }
方法2:xml文件中编写sql
i.id in#{item} ) OR ID IN( ,
sql逻辑:
ID IN(ids[0],ids[1]+...+ids[998])OR ID IN (ids[999],ids[1000],...ids[max])
mybatis大于1000的in查询的解决
之前公司一位同事写的方法:
但是随着数据量增加,发现大于2000这种方法会报错;
论证如下
解决办法
NULL ) OR DOC.ID IN ( #{item}
关于怎么解决mybatis in查询条件过长的问题问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注行业资讯频道了解更多相关知识。
方法
查询
问题
条件
更多
帮助
解答
易行
简单易行
代码
余数
公司
内容
办法
参数
同事
多个
小伙
小伙伴
数据
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
静态路由网络安全保密性高吗
file开头的服务器连接软件
网络安全员应具备什么
服务器如何防止托管数据丢失
管理服务器端口的软件
pictar数据库使用方法
数据库服务器时区乱码
数据库在表里查询一列的信息
网络技术揭秘
中兴重庆软件开发待遇
戴尔塔式服务器维修地址
数据库通过id分页
数据库通过出生年查年龄
网络技术核心论包括
数据库表拷贝
眼科科研数据库
rpgmaker调整数据库大小
有没有个人家用游戏托管服务器
服务器主机玩天堂2
mysql数据库无法卸载
软件开发的保护
涛翔网络技术有限公司
武汉ai服务器供应价格
互联网凝聚中国科技创新
无锡海航软件开发
我的世界服务器一直卡在定位服务
汽车车载网络技术分析
plsql数据库表
神通数据库怎么查看授权期限
闵行辅助网络技术