怎么解决mybatis in查询条件过长的问题
发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,怎么解决mybatis in查询条件过长的问题,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。mybatis in查询条件过长的解决方
千家信息网最后更新 2026年11月01日怎么解决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安全错误
数据库的锁怎样保障安全
西安纸贵互联网科技有限公司
互联网科技行业发展
互联网科技保险
远拓互联网科技
互联网科技logo
长亮科技互联网金融
天扬科技互联网广告
科技大学互联网专业好不好
福建科技产业互联网发展
昭通互联网科技选哪家
晋城互联网科技
互联网金融科技名词解释
互联网科技公司营业执照怎么办理
下一代互联网重大应用科技园
互联网科技手机排行榜
银川新华互联网科技学校原画
玉溪新华互联网科技怎么选
10位科技互联网大佬
互联网的黑科技实验室
银川新华互联网科技学校招聘
互联网佳科技有限公司
互联网科技行业发展
科技与互联网
科技类互联网
九亚互联网科技
新浪科技互联网
互联网养老 桔豆科技
卓越科技互联网 招聘
深圳育鹏互联网科技有限公司招聘
广州全民伙伴互联网科技有限公司