程序包 com.walker.di
类 AbstractDataImportor
java.lang.Object
com.walker.di.AbstractDataImportor
- 所有已实现的接口:
DataImportor
- 直接已知子类:
InputStreamDataImportor
-
字段概要
字段 -
构造器概要
构造器 -
方法概要
修饰符和类型方法说明protected abstract ErrorWriteracquireErrorWriter(String id, List<String> fieldNames) 获取一个错误记录器实现对象。protected abstract voidacquireImportBatch(BatchLoadListener batchLoadListener, Object source) 批量加载具体导入数据集合。acquireImportDataList(Object source) 由子类加载具体导入数据集合。protected voiddoExecuteImport(List<Object[]> rows, List<String> fieldNames) 执行一次导入保存操作,无论一次还是批量都调用该方法。protected booleandoValidate(List<Object[]> rows) long返回批量加载导入数据的数量(每次)getDataMap(Object[] data) 把加载的数据转换成 Map 对象,key = column_name, value = data_object返回错误文件路径,如: d:/file/12344566_error.csv获取导入数据的列名字集合。int返回表头有几行。getId()导入唯一标识,由业务确定,在导入错误时,运行把错误结果重新导入int返回忽略导入多少行数据。protected abstract String获得导入文(以及错误结果)文件后缀名,如: error.csv | error.xlsxgetKeyValueList(Object[] data, List<String> fieldNames) protected Stringlonglong返回批量导入时,每次保存数据,线程休息毫秒时间,如果0表示不休眠。long返回已经成功导入数量。判断数据更新类型,在需要检查数据是否存在时使用。protected voidincreaseImportSize(long addSize) 增加导入数量,表示已经成功导入数据量。boolean是否支持批量导入,对于大数据量导入会提高效率。boolean是否支持断点续传(导入),如果支持,引擎会记录导入位置,并在下次重新导入时,从该位置开始。protected booleanvoidload()加载并导入数据,业务调用该方法完成导入具体操作。protected abstract voidsaveBrokenInfo(long index) 保存断点信息,后续重新导入需要使用。protected abstract voidsaveImportData(List<Object[]> dataList, List<String> fieldNames) 保存导入的数据集合。void设置允许批量导入,使用默认参数。voidsetBatchLoadListener(BatchLoadListener batchLoadListener) voidsetBatchSize(long batchSize) 设置批量导入的数量,默认不能超过:512voidsetBatchSleepMills(long millSeconds) 设置批量导入时,每次保存间隔线程休眠时间,如果为0表示不休息。voidsetBrokenContinue(boolean allow) 设置是否支持断点续传(导入)voidsetBrokenId(String brokenId) 设置断点续传的标识,用于告知引擎需要使用该功能。voidsetFieldNames(List<String> fieldNames) 设置导入数据列名字voidsetHeadRowNumber(int headRowNumber) 设置导入数据中,表头有几行,支持多行表头。voidvoidsetIgnoreRows(int number) 设置导入数据时,忽略的行数。voidsetSaveFileFolder(String saveFileFolder) 设置保存文件的文件夹路径,如: d:/file/voidsetSaveSizeOnce(long saveSizeOnce) 设置每次保存记录的数量,通常持久化到数据库中是一批次操作,系统默认:200voidsetShowError(boolean showError) 设置'是否显示错误结果文件',如果显示则会为用户提供导入错误的结果文件。protected void设置加载数据的原始参数,可能是文件路径、表名等。voidsetUpdateType(UpdateType updateType) 设置数据更新方式,如果在导入时需要判断数据是否存在,则可以设置该更新策略。protected abstract StringvalidateData(Map<String, String> data) 判断一条数据是否符合验证,由业务实现。从类继承的方法 java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait从接口继承的方法 com.walker.di.DataImportor
getBatchError
-
字段详细资料
-
logger
protected final transient org.slf4j.Logger logger -
MAX_BATCH_SIZE
protected static final long MAX_BATCH_SIZE- 另请参阅:
-
-
构造器详细资料
-
AbstractDataImportor
public AbstractDataImportor()
-
-
方法详细资料
-
setBatchLoadListener
-
load
从接口复制的说明:DataImportor加载并导入数据,业务调用该方法完成导入具体操作。- 指定者:
load在接口中DataImportor- 抛出:
DataImportException
-
doExecuteImport
protected void doExecuteImport(List<Object[]> rows, List<String> fieldNames) throws DataImportException 执行一次导入保存操作,无论一次还是批量都调用该方法。1)一次性的仅执行一次 2)批量的会多次执行- 参数:
rows-fieldNames-- 抛出:
DataImportException
-
doValidate
-
getDataMap
把加载的数据转换成 Map 对象,key = column_name, value = data_object- 参数:
data-- 返回:
-
getKeyValueList
-
isBatchSupport
public boolean isBatchSupport()从接口复制的说明:DataImportor是否支持批量导入,对于大数据量导入会提高效率。 此时导入策略会启用批量加载并小块写入方式,避免内存溢出并提高效率。- 指定者:
isBatchSupport在接口中DataImportor- 返回:
-
isBrokenContinue
public boolean isBrokenContinue()从接口复制的说明:DataImportor是否支持断点续传(导入),如果支持,引擎会记录导入位置,并在下次重新导入时,从该位置开始。 但这需要提供唯一标识以确定要使用断点功能,- 指定者:
isBrokenContinue在接口中DataImportor- 返回:
-
setBatchEnabled
public void setBatchEnabled()从接口复制的说明:DataImportor设置允许批量导入,使用默认参数。- 指定者:
setBatchEnabled在接口中DataImportor
-
setBatchSize
public void setBatchSize(long batchSize) 从接口复制的说明:DataImportor设置批量导入的数量,默认不能超过:512- 指定者:
setBatchSize在接口中DataImportor
-
setBrokenContinue
public void setBrokenContinue(boolean allow) 从接口复制的说明:DataImportor设置是否支持断点续传(导入)- 指定者:
setBrokenContinue在接口中DataImportor
-
setBrokenId
从接口复制的说明:DataImportor设置断点续传的标识,用于告知引擎需要使用该功能。- 指定者:
setBrokenId在接口中DataImportor
-
setFieldNames
从接口复制的说明:DataImportor设置导入数据列名字- 指定者:
setFieldNames在接口中DataImportor
-
setIgnoreRows
public void setIgnoreRows(int number) 从接口复制的说明:DataImportor设置导入数据时,忽略的行数。 有时导入文件第一个可能是说明行,需要忽略,该方法可设置忽略多少行(这些行不导入)。- 指定者:
setIgnoreRows在接口中DataImportor
-
setBatchSleepMills
public void setBatchSleepMills(long millSeconds) 从接口复制的说明:DataImportor设置批量导入时,每次保存间隔线程休眠时间,如果为0表示不休息。- 指定者:
setBatchSleepMills在接口中DataImportor- 参数:
millSeconds- 毫秒值
-
getFieldNames
从接口复制的说明:DataImportor获取导入数据的列名字集合。- 指定者:
getFieldNames在接口中DataImportor- 返回:
-
getBatchSize
public long getBatchSize()返回批量加载导入数据的数量(每次)- 指定者:
getBatchSize在接口中DataImportor- 返回:
-
getSuccessSize
public long getSuccessSize()从接口复制的说明:DataImportor返回已经成功导入数量。- 指定者:
getSuccessSize在接口中DataImportor- 返回:
-
getId
从接口复制的说明:DataImportor导入唯一标识,由业务确定,在导入错误时,运行把错误结果重新导入- 指定者:
getId在接口中DataImportor- 返回:
-
setId
- 指定者:
setId在接口中DataImportor
-
setShowError
public void setShowError(boolean showError) 从接口复制的说明:DataImportor设置'是否显示错误结果文件',如果显示则会为用户提供导入错误的结果文件。- 指定者:
setShowError在接口中DataImportor
-
setSaveFileFolder
从接口复制的说明:DataImportor设置保存文件的文件夹路径,如: d:/file/- 指定者:
setSaveFileFolder在接口中DataImportor
-
getErrorFile
返回错误文件路径,如: d:/file/12344566_error.csv- 指定者:
getErrorFile在接口中DataImportor- 返回:
-
getSaveFileFolder
-
getIgnoreRows
public int getIgnoreRows()返回忽略导入多少行数据。- 返回:
-
getSleepMillSeconds
public long getSleepMillSeconds()返回批量导入时,每次保存数据,线程休息毫秒时间,如果0表示不休眠。- 返回:
-
setSource
设置加载数据的原始参数,可能是文件路径、表名等。- 参数:
source-
-
setSaveSizeOnce
public void setSaveSizeOnce(long saveSizeOnce) 设置每次保存记录的数量,通常持久化到数据库中是一批次操作,系统默认:200- 参数:
saveSizeOnce-
-
setHeadRowNumber
public void setHeadRowNumber(int headRowNumber) 从接口复制的说明:DataImportor设置导入数据中,表头有几行,支持多行表头。- 指定者:
setHeadRowNumber在接口中DataImportor
-
setUpdateType
从接口复制的说明:DataImportor设置数据更新方式,如果在导入时需要判断数据是否存在,则可以设置该更新策略。 目前支持两种: 忽略、覆盖。- 指定者:
setUpdateType在接口中DataImportor
-
getUpdateType
判断数据更新类型,在需要检查数据是否存在时使用。- 返回:
-
getHeadRowNumber
public int getHeadRowNumber()返回表头有几行。- 返回:
-
getSaveSizeOnce
public long getSaveSizeOnce() -
increaseImportSize
protected void increaseImportSize(long addSize) 增加导入数量,表示已经成功导入数据量。- 参数:
addSize-
-
isShowError
protected boolean isShowError() -
acquireImportDataList
由子类加载具体导入数据集合。- 参数:
source- 原始输入源(参数)- 返回:
- 抛出:
DataImportException
-
acquireImportBatch
protected abstract void acquireImportBatch(BatchLoadListener batchLoadListener, Object source) throws DataImportException 批量加载具体导入数据集合。- 参数:
batchLoadListener-source-- 抛出:
DataImportException
-
validateData
判断一条数据是否符合验证,由业务实现。- 参数:
data-- 返回:
- 返回校验不通过原因,如果校验正确则返回: null
-
saveImportData
protected abstract void saveImportData(List<Object[]> dataList, List<String> fieldNames) throws BusinessImportException 保存导入的数据集合。- 参数:
dataList-- 抛出:
BusinessImportException
-
saveBrokenInfo
protected abstract void saveBrokenInfo(long index) 保存断点信息,后续重新导入需要使用。- 参数:
index- 当前记录索引值
-
acquireErrorWriter
获取一个错误记录器实现对象。- 参数:
id- 导入唯一业务标识fieldNames- 数据标题列集合- 返回:
-
getImportFileSuffix
获得导入文(以及错误结果)文件后缀名,如: error.csv | error.xlsx- 返回:
-