当然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相关推荐

  1. mybatis执行器Executor

    mybatis的执行器的主要三个实现类:SimpleExecutor.ReuseExecutor.BatchExecutor SimpleExecutor是一个简单的执行器,每执行一次,都会预编译一次 ...

  2. Mybatis的Executor介绍

    Mybatis中所有的Mapper语句的执行都是通过Executor进行的,Executor是Mybatis的一个核心接口,其定义如下.从其定义的接口方法我们可以看出,对应的增删改语句是通过Execu ...

  3. mybatis中 Executor的设计与实现

    Executor的接口定义主要包含sql操作,事务.缓存操作 其基于模板方法模式设计的 其类层次关系图为 1.Executor 1.1 BaseExecutor 是SimpleExecutor,Reu ...

  4. 手写自己的MyBatis框架-Executor

    到了sqlSession 的selectOne()方法,这里我们要去调用Executor 的query()方法,这个时候我们必须传入SQL 语句和参数(根据statementId 获取). 问题来了: ...

  5. 【MyBatis系列7】原来SqlSession只是个甩手掌柜,真正干活的却是Executor等四大对象

    Executor原理分析 前言 MyBatis架构分层 Executor BaseExecutor SimpleExecutor ReuseExecutor BatchExecutor 三种常用批量插 ...

  6. MyBatis常见面试题汇总

    文章目录 概述 简介 优点 缺点 适用场景 MyBatis与Hibernate有什么不同? ORM是什么 传统JDBC开发存在什么问题? JDBC编程有哪些不足之处,MyBatis 是如何解决的? M ...

  7. 面试官问你MyBatis SQL是如何执行的?把这篇文章甩给他

    来自:Java建设者 初识 MyBatis MyBatis 是第一个支持自定义 SQL.存储过程和高级映射的类持久框架.MyBatis 消除了大部分 JDBC 的样板代码.手动设置参数以及检索结果.M ...

  8. java执行sql文件_面试官问你MyBatis SQL是如何执行的?把这篇文章甩给他

    初识 MyBatis MyBatis 是第一个支持自定义 SQL.存储过程和高级映射的类持久框架.MyBatis 消除了大部分 JDBC 的样板代码.手动设置参数以及检索结果.MyBatis 能够支持 ...

  9. 诡异!MyBatis的Insert方法一直返回-2147482646?

    作者 | 占小狼的博客 来源 | https://mp.weixin.qq.com/s/iV6BwQkjTXCvfrAwgj2V4w 前几天在做项目demo的时候,发现有一个很奇怪的现象,就是MyBa ...

  10. Spring和Mybatis集成,如何批量insert update?以及一些通用Dao的设想

    2019独角兽企业重金招聘Python工程师标准>>> 之所以写这篇文章,主要是给新手提供一些mybatis使用的技巧和思路 现在国内很多项目都使用了mybatis作为ORM框架 我 ...

最新文章

  1. Docker将容器制作成镜像并提交到远程仓库
  2. QC配置邮件服务器(Mail Dir)
  3. CentOS6安装redmine
  4. vst3插件_Steinberg发布新的VST 3.7 SDK,音乐软件开发者速来围观
  5. 占用较多堆外内存的区域
  6. ajax jsonjar包,json-lib.jar
  7. 关于C#对Excel导出时对整行的操作
  8. iTOP-4418/6818开发板-QtE4.7WIFI_MT6620热点
  9. Windows Server 2008 R2 小技巧
  10. vscode生成vue模板快捷键_VSCode 初次写vue项目并一键生成.vue模版
  11. UNIX网络编程 第1卷 数据分享
  12. android面板驱动的使用方法,高通平台Android 驱动层LCD显示屏驱动移植说明和相关工具...
  13. 批量(或选择)导出数据库表中的数据生成Excel文件
  14. 高并发之阿里云弹性伸缩的使用记录
  15. python实现离散沃尔什变换_快速沃尔什变换(示例代码)
  16. 英语音标 什么是音素
  17. 【COGS2652】秘术「天文密葬法」(长链剖分,分数规划)
  18. H5表单validity各个属性对应
  19. 手机linux系统安装
  20. 服务器导购:选购服务器应看哪些配置参数

热门文章

  1. Linux-重装系统之nginx+php+mysql
  2. spark2.1:rdd.combineByKeyWithClassTag的用法示例
  3. (素材源代码) 猫猫学iOS 之UIDynamic重力、弹性碰撞吸附等现象牛逼Demo
  4. 一、HTML和CSS基础--HTML+CSS基础课程--第1部分
  5. Oracle中的正则表达式(REPLACE 和REGEXP_REPLACE)---转载自http://database.51cto.com/art/201009/228270.htm...
  6. android---am命令
  7. javascript实现kruskal算法
  8. Cocos2D-x(3)——动作类备忘
  9. [转载]内容首页设计经验
  10. POJ2112 Optimal Milking