spring data jpa使用批量插入解決 Failed to validate connection com.mysql.jdbc.JDBC4Connection問題

場景:

輸入:一個大的json數組,將每個數組中的對象插入到數據庫中(這個大的json數組中有129個對象)

問題:

未使用批量插入時,使用的是spring boot 2.2.0,spring data jpa,默認使用hikari cp連接池

hikariPool報錯:

HikariPool-1 - Failed to validate connection com.mysql.jdbc.JDBC4Connection@3e471d67

(No operations allowed after connection closed.).

Possibly consider using a shorter maxLifetime value.

以及

HikariPool-1 - Connection is not available, request timed out after 30049ms.

發現其都是在插入129個對象的時候發生

 

原因:

猜測就是插入的時候,connection不夠用造成的

 

解決方法:

在sping data jpa中實現批量插入

業務代碼:


List<Hospital> data =JSON.parseArray(msgBody, Hospital.class);

hospitalRepository.saveAll(data);

配置:(重要


spring.jpa.properties.hibernate.jdbc.batch_size=150

配置了druid查看一下

參考:spring data jpa開啓批量插入、批量更新

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