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+