今天記錄一下由於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條插入就行了。
數據完美的也過來了,上面的兩個錯誤也沒了