今天修改了批量插入业务sql后 报StackOverflowError错误(druid 解析sql时递归层级太深) 批量插入使用的foreach 一次插入5000条 只是插入时添加几个字段不至于 把插入条数改成100条测试 报语法错误 检查sql发现错误如下
(#{name,jdbcType=VARCHAR},
(#{note,jdbcType=VARCHAR},
复制的时候不小心把括号也复制了 看来以后还是括号单独钻一行
由此得知报StackOverflowError可能是sql太长或语法问题导致druid递归解析层级太深
数据库限制导致mysql批量插入失败
内容大致如下
sqlserver 对条数和参数有限制 分别1000和2100
mysql对包大小有限制可以通过max_allowed_packet配置 默认4M 该限制针对所有sql语句 包括查询到的结果集