001package com.mybatisflex.spring.batch.builder; 002 003import com.mybatisflex.spring.batch.MybatisFlexBatchItemWriter; 004import com.mybatisflex.core.BaseMapper; 005 006import java.util.Optional; 007 008/** 009 * 构造MybatisFlex数据的写入工具 010 * 011 * @author zhangjian 012 * 013 * @see MybatisFlexBatchItemWriter 014 */ 015public class MyBatisFlexBatchItemWriterBuilder<T> { 016 017 /** 018 * mapper对象 019 */ 020 private BaseMapper<T> mapper; 021 022 private Boolean assertUpdates; 023 024 /** 025 * mapper对象 026 * @param mapper 027 * @return 028 */ 029 public MyBatisFlexBatchItemWriterBuilder<T> mapper(BaseMapper<T> mapper) { 030 this.mapper = mapper; 031 return this; 032 } 033 034 /** 035 * 是否更新标志位 036 * @param assertUpdates 037 * @return 038 */ 039 public MyBatisFlexBatchItemWriterBuilder<T> assertUpdates(boolean assertUpdates) { 040 this.assertUpdates = assertUpdates; 041 return this; 042 } 043 044 /** 045 * 构建写入工具 046 * @return 047 */ 048 public MybatisFlexBatchItemWriter<T> build() { 049 MybatisFlexBatchItemWriter<T> writer = new MybatisFlexBatchItemWriter<>(); 050 writer.setMapper(this.mapper); 051 Optional.ofNullable(this.assertUpdates).ifPresent(writer::setAssertUpdates); 052 return writer; 053 } 054 055}