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條插入就行了。

數據完美的也過來了,上面的兩個錯誤也沒了

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章