在Mybatis中有三種Executor:spring
這些就是Mybatis的三種執行器。你能夠經過配置文件的settings
裏面的元素defaultExecutorType
,配置它,默認是採用SimpleExecutor若是你在Spring運用它,那麼你能夠這麼配置它:sql
<bean id="sqlSessionTemplateBatch" class="org.mybatis.spring.SqlSessionTemplate"> <constructor-arg index="0" ref="sqlSessionFactory" /> <!--更新採用批量的executor --> <constructor-arg index="1" value="BATCH"/> </bean>
或者在Spring Boot的屬性文件中配置:數據庫
mybatis.executor-type=BATCH
若是你在事務中有這麼一段代碼:mybatis
Media media = new Media(); media.setTitle("默認用戶頭像"); media.setMediaType(0); media.setUrl(defaultAvatarUrl); mediaMapper.insert(media); logger.info("mediaId : " + media.getId()); User user = new User(); user.setMedia(media); userMapper.insert(user);
那麼就會致使Media
沒法獲取插入數據庫後的id。app
這時,只須要修改Executor爲其它兩種便可:code
<bean id="sqlSessionTemplateBatch" class="org.mybatis.spring.SqlSessionTemplate"> <constructor-arg index="0" ref="sqlSessionFactory" /> <!--更新採用批量的executor --> <constructor-arg index="1" value="SIMPLE"/> </bean>
或者在Spring Boot的屬性文件中配置:事務
mybatis.executor-type=SIMPLE
以上get