mybatis-Batch Executor
生活随笔
收集整理的這篇文章主要介紹了
mybatis-Batch Executor
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
當然MyBatis 的動態標簽的批量操作也是存在一定的缺點的,比如數據量特別大的時候,拼接出來的SQL 語句過大。
MySQL 的服務端對于接收的數據包有大小限制,max_allowed_packet 默認是4M,需要修改默認配置才可以解決這個問題。
Caused by: com.mysql.jdbc.PacketTooBigException: Packet for query is too large (7188967 > 4194304). You can change this value on the server by setting the max_allowed_packet' variable.在我們的全局配置文件中, 可以配置默認的Executor 的類型。其中有一種BatchExecutor。
<setting name="defaultExecutorType" value="BATCH" />也可以在創建會話的時候指定執行器類型:
SqlSession session = sqlSessionFactory.openSession(ExecutorType.BATCH);BatchExecutor 底層是對JDBC ps.addBatch()的封裝,原理是攢一批SQL 以后再發送(參考standalone - 單元測試目錄JdbcTest.java – testJdbcBatch())。
問題:三種執行器的區別是什么?Simple、Reuse、Batch
?
總結
以上是生活随笔為你收集整理的mybatis-Batch Executor的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: mybatis-批量更新
- 下一篇: mybatis-嵌套(关联)查询/ N+