怎么解决mybatis in查询条件过长的问题
发表于:2025-02-08 作者:千家信息网编辑
千家信息网最后更新 2025年02月08日,怎么解决mybatis in查询条件过长的问题,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。mybatis in查询条件过长的解决方
千家信息网最后更新 2025年02月08日怎么解决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安全错误
数据库的锁怎样保障安全
百骅网络技术
上海hp服务器阵列卡
南京品牌网络技术包括什么
ddos攻击服务器
看视频赚金币软件开发
扬州市网络安全和信息化委员会
信息网络技术体会
数据库中自增长只能主键吗
广州传统文化图案数据库
辽宁省互联网新科技
数据库怎么分成三份
网易大神服务器列表移动版
赣县游戏软件开发
软件开发知识产品
蒙古国网络安全合作伙伴
前端提升web应用的网络安全性
深圳唯盛网络技术有限公司
常德上智网络技术有限公司
vlog网络技术
歌华服务器繁忙01-300
学网络安全可以做什么工作
服务器 台州
儿童网络安全读后感
软件开发工程师可以兼职吗
电子商务网络技术基础期末题
吴中区正规服务器价格咨询
数据库排序语句
实现数据库物理网络安全具体操作
软件开发的重要性
网络安全凭证 清除