Mybatis批量插入index out of range錯誤的解決(較偏的錯誤)
Mybatis批量插入index out of range錯誤
往往我們看到網上關於各類關於批量插入報這種錯誤的文章都是傳入的集合為null,或者是參數獲取不對等等,但是在開發的時候同事遇到瞭這種類型的錯誤,我一直以為是網上那些博客那些原因造成的,於是,兩隻眼睛一直盯著代碼看來許久都沒有找出什麼問題。那是什麼問題呢?
原因
是由於項目中用的是sharding-jdbc來進行數據庫連接,而sharding-jdbc是不支持SQL語句的批量插入的。
改進
1.修改一下批量插入的的語句,這種比較雞肋,可能會違背很多程序猿開發習慣
2.將連接數據源更換,將sharding-jdbc更換為com.alibaba.druid.pool.DruidDataSource
String index out of range: 100 報錯詳解
一個很奇葩的報錯,出錯情況
在這裡進行debug之後可以看到,異常在substring中:
也就是判斷字符串的時候報錯:具體原因就是string字符串indexof的值本身隻有5,然後在這裡去取其第100 個字符作為截止,因此就會報這個錯;
知識點
主要是堆String概念不清。下面針對字符串相關概念(String、char、char[])做一個簡介。
針對上述問題解決辦法
以上為個人經驗,希望能給大傢一個參考,也希望大傢多多支持WalkonNet。
推薦閱讀:
- 使用sharding-jdbc實現水平分庫+水平分表的示例代碼
- Spring boot動態修改日志級別的方法
- Java ShardingJDBC實戰演練
- SpringBoot詳解如何實現讀寫分離
- 使用sharding-jdbc實現水平分表的示例代碼