该服务器支持最多2100个参数,mybatis where in语句中参数过多

ps : mybatis在in中参数过多

出现问题

com.microsoft.sqlserver.jdbc.SQLServerException: 传入的请求具有过多的参数。该服务器支持最多 2100 个参数

原因

SqlServer 对语句的条数和参数的数量都有限制,分别是 1000 和 2100。

Mysql 对语句的长度有限制,默认是 4M。

Mybatis 对动态语句没有数量上的限制

### Error querying database. Cause: com.microsoft.sqlserver.jdbc.SQLServerException: 传入的请求具有过多的参数。该服务器支持最多 2100 个参数。请减少参数的数目,然后重新发送该请求。

### The error occurred while setting parameters

### SQL:

### Cause: com.microsoft.sqlserver.jdbc.SQLServerException: 传入的请求具有过多的参数。该服务器支持最多 2100 个参数。请减少参数的数目,然后重新发送该请求。

; uncategorized SQLException for SQL []; SQL state [S0001]; error code [8003]; 传入的请求具有过多的参数。该服务器支持最多 2100 个参数。请减少参数的数目,然后重新发送该请求。; nested exception is com.microsoft.sqlserver.jdbc.SQLServerException: 传入的请求具有过多的参数。该服务器支持最多 2100 个参数。请减少参数的数目,然后重新发送该请求。

解决方案

SQLserver对可以设置的参数有限制。

我们可以采用自己拼接 SQL 语句的方式来实现 in 的操作

我在 java 代码中进行如下操作:

String list = parkingIdss.toString();

String list1 = list.substring(1, list.length() - 1);

List parking = null;

if ("".equals(list1)) {

parking = parkMapper.selectParkingInfoByPrimaryKeyList(null);

} else {

parking = parkMapper.selectParkingInfoByPrimaryKeyList("(" + list1 + ")");

}

SQL 语句中如下操作:

and p.Id in ${list}

Mybatis&orcale update语句中接收参数为对象

Mybatis的 mapper.xml 中 update 语句使用 if 标签判断对像属性是否为空值. UserDTO是传过来参数的类型,userDTO是在mapperDao接口中给更新方法的参数起的 ...

11、mybatis的映射xml中参数类型的别名

在mapper.xml中,定义很多的statement,statement需要parameterType指定输入参数的类型.需要resultType指定输出结果的映射类型. 如果在指定类型时输入类型全 ...

Mybatis笔记 – insert语句中主键的返回

在DBMS中可以使用insert语句显示指定自增主键值,但Mybatis中不可,即使指定了也无效,可以使用特殊的方式返回主键. 一.自增主键返回         mysql自增主键执行insert提交 ...

解决sql语句中参数为空(null)不会更新参数的问题

用的mybatis自动生成的 情景: 修改页面中,修改某个字段,修改前有数据,修改后为空. mybatis中一般用到 如:(这种直接忽略为空的字段,不能更新空字段参数)

sparksql udf自定义函数中参数过多问题的解决

在进行spark sql数据库操作中,常常需要一些spark系统本身不支持的函数,如获取某一列值中的字符串. 如要获取 “aaaakkkkk”中的第4-第8个字符. 针对这种需求,只有设置UDF来实现 ...

switch语句中 参数的类型

switch可作用于char byte short int switch可作用于char byte short int对应的包装类 switch不可作用于long double float boole ...

Mybatis中动态SQL语句中的parameterType不同数据类型的用法

Mybatis中动态SQL语句中的parameterType不同数据类型的用法1. 简单数据类型,    此时#{id,jdbcType=INTEGER}中id可以取任意名字如#{a,jdbcType ...

Hibernate的HQL语句中定位参数和具名参数传参

HQL查询: 1.有关hql查询语句中的问号参数形式,如果出现有多个问号,这对后面设置参数就比较麻烦. 如:from User user where user.name=? and user.age= ...

【spring boot】【mybatis】spring boot中mybatis打印sql语句

spring boot中mybatis打印sql语句,怎么打印出来?[参考:https://www.cnblogs.com/sxdcgaq8080/p/9100178.html] 在applicati ...

随机推荐

System.Configuration引用后ConfigurationManager方法用不了

System.Configuration引用后ConfigurationManager方法却用不了,提示没有引用 需手动添加引用 项目-引用-右击-添加引用-找到System.Configuratio ...

数学对象-Math

Math 属性: PI        圆周率 例子:var x=Math.xxxx(); sqrt()  一个非负数的平方根    nan pow()   x的y次幂的值      Math.pow( ...

TYVJ1305 最大子序和

描述 输入一个长度为n的整数序列,从中找出一段不超过M的连续子序列,使得整个序列的和最大. 例如 1,-3,5,1,-2,3 当m=4时,S=5+1-2+3=7当m=2或m=3时,S=5+1=6 输入 ...

Java 获取*.properties配置文件中的内容 ,常见的两种方法

import java.io.InputStream; import java.util.Enumeration; import java.util.List; import java.util.Pr ...

[POJ1631]Bridging signals (DP,二分优化)

题目链接:http://poj.org/problem?id=1631 就是求一个LIS,但是范围太大(n≤40000),无法用常规O(n²)的朴素DP算法,这时需要优化. 新加一个数组s[]来维护长 ...

hdu 1879 继续畅通工程(最小生成树,基础)

题目 #define _CRT_SECURE_NO_WARNINGS #include #include #include

Android5.0水波纹效果ripple实现

1.如何设置波纹效果 // 波纹有边界 android:background="?android:attr/selectableItemBackground" // 波纹超出边界 ...

PS软件操作应用—文字特效

前  言 JRedu 在图像调整和文字工具的分享文章中,对文字工具做了简单的介绍,包括了文字的字体.字号大小.颜色以及字间距行距等等的设置和修改,都是一些基本的功能,在这次的分享中我们介绍下文字特 ...

Linux下Springboot解决`APR based Apache Tomcat Native library`提示

最近转行做java,开发基于Springboot的项目,版本号为2.1.0.RELEASE. 启动应用,发现以下提示: The APR based Apache Tomcat Native libra ...