在spring配置文件中,有一个属性executorType可以设置,其value值常用的有BATCH和SIMPLE,如果不设置默认获取的sqlSession是SIMPLE类型的
BATCH的执行效果
如上图所示,BATCH模式,只发出一条SQL语句,预编译一次,但设置参数N次,执行一次。
SIMPLE的执行效果
如上图所示,SIMPLE模式,每一条语句都会发出一条SQL,进行一次预编译,设置一次参数,执行一次。
耗时对比
BATCH模式下,SQL语句只是预编译一次,所以在插入的效率上是远高于SIMPLE模式的,所以当我们想要批量插入数据时,我们应在配置文件上声明其模式
<!-- 批量插入sql的操作-->
<bean id="sqlSession" class="org.mybatis.spring.SqlSessionTemplate">
<constructor-arg name="sqlSessionFactory" ref="sqlSessionFactory"/>
<constructor-arg name="executorType" value="BATCH"/>
</bean>这样,当我们获取到sqlSession后,利用for循环进行批量插入时的效率就会比较高