mybatis批量插入造成 java.sql.SQLException: Thread stack overrun: 和 Column 'id' cannot be null

今天记录一下由于mybatis批量插入造成的两个问题

1, java.sql.SQLException: Thread stack overrun:  246176 bytes used of a 262144 byte stack, and 16000 bytes needed.  Use 'mysqld --thread_stack=#' to specify a bigger stack.
    at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1084)

网上查的

 解决方法:
windows:在这个文件中my-small.ini  thread_stack 建议调整到500K

linux:在my.cnf中配置thread_stack的值可解决此问题。一般可配置为256K。
在my.cnf的[mysqld]小节中加入下面的配置:
thread_stack=256K
保存,重启mysql服务即可。

 查看配置是否生效
进入mysql命令环境中,用以下命令进行查看:
show variables like '%thread%';
mysql会显示出相应的配置参数,确定thread_stack项的value是否为期望值。

2,Column 'id'  cannot be null

造成这个错误的原因我也没查到,我的数据id不可能为空,我猜测是长度太长了,数据没有取完,然后就批量插入造成

所以,最后我老老实实的把每2000条插入改为每200条插入就行了。

数据完美的也过来了,上面的两个错误也没了

猜你喜欢

转载自blog.csdn.net/zhaofuqiangmycomm/article/details/106056155
今日推荐