Class DefaultDatabaseWriter
java.lang.Object
org.jumpmind.symmetric.io.data.writer.AbstractDatabaseWriter
org.jumpmind.symmetric.io.data.writer.DefaultDatabaseWriter
- All Implemented Interfaces:
IDataResource
,IDataWriter
- Direct Known Subclasses:
DynamicDefaultDatabaseWriter
-
Nested Class Summary
Nested classes/interfaces inherited from class org.jumpmind.symmetric.io.data.writer.AbstractDatabaseWriter
AbstractDatabaseWriter.LoadStatus
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final String
protected DmlStatement
protected Object[]
protected boolean
protected Boolean
protected LogSqlBuilder
protected IDatabasePlatform
protected ISqlTransaction
Fields inherited from class org.jumpmind.symmetric.io.data.writer.AbstractDatabaseWriter
batch, CONFLICT_ERROR, CONFLICT_IGNORE, conflictResolver, context, isRequiresSavePointsInTransaction, lastApplyChangesOnly, lastData, lastUseConflictDetection, missingTables, sourceTable, statistics, targetColumnSourceReferencesMap, targetTable, targetTables, TRANSACTION_ABORTED, uncommittedCount, writerSettings
-
Constructor Summary
ConstructorsConstructorDescriptionDefaultDatabaseWriter
(IDatabasePlatform platform) DefaultDatabaseWriter
(IDatabasePlatform platform, DatabaseWriterSettings settings) DefaultDatabaseWriter
(IDatabasePlatform platform, IDatabaseWriterConflictResolver conflictResolver, DatabaseWriterSettings settings) -
Method Summary
Modifier and TypeMethodDescriptionprotected void
allowInsertIntoAutoIncrementColumns
(boolean value, Table table) protected void
bindVariables
(Map<String, Object> variables) protected void
void
close()
protected void
commit
(boolean earlyCommit) protected void
commit
(boolean earlyCommit, ISqlTransaction newTransaction) protected boolean
containsNullLookupKeyDataSinceLastStatement
(DmlStatement.DmlType currentType, CsvData data, Conflict.DetectConflict detectType) protected boolean
protected boolean
protected AbstractDatabaseWriter.LoadStatus
protected String
dmlValuesToString
(Object[] dmlValues, int[] types) protected boolean
doesColumnNeedUpdated
(int targetColumnIndex, Column column, CsvData data, String[] rowData, String[] oldData, boolean applyChangesOnly) void
void
protected int
protected String
getCurData
(ISqlTransaction transaction) getPlatform
(String table) getPlatform
(Table table) getSqlStatements
(String script) protected String
getTableKey
(Table table) getTransaction
(String table) getTransaction
(Table table) protected AbstractDatabaseWriter.LoadStatus
protected boolean
protected boolean
protected void
logDataTruncation
(CsvData data, StringBuilder failureMessage) protected void
logFailureDetails
(Throwable e, CsvData data, boolean logLastDmlDetails) protected void
logFailureDetails
(Throwable e, CsvData data, boolean logLastDmlDetails, Object[] values) protected Table
lookupTableAtTarget
(Table sourceTable) protected Table
lookupTableFromCache
(Table sourceTable, String tableKey) void
open
(DataContext context) protected void
prepare()
protected void
int
prepareAndExecute
(String sql, CsvData data) protected String
protected void
putTableInCache
(String tableKey, Table table) protected String
quoteString
(String string) protected void
removeGeneratedColumns
(Table table) protected void
protected String
protected boolean
requireNewStatement
(DmlStatement.DmlType currentType, CsvData data, boolean applyChangesOnly, boolean useConflictDetection, Conflict.DetectConflict detectType) protected void
rollback()
protected boolean
boolean
protected void
targetTableWasChangedByFilter
(Table oldTargetTable) protected AbstractDatabaseWriter.LoadStatus
protected void
updateChangedDataIndicator
(CsvData data, Column column, boolean needsUpdated) Methods inherited from class org.jumpmind.symmetric.io.data.writer.AbstractDatabaseWriter
buildTargetColumnReferencesMap, checkForEarlyCommit, clearTargetColumnReferencesMap, filterAfter, filterBefore, filterError, getBatch, getConflictResolver, getContext, getLookupDataMap, getPkDataFor, getRowData, getSourceTable, getStatistics, getTargetColumnReferencesMap, getTargetTable, hasFilterThatHandlesMissingTable, notifyFiltersBatchCommitted, notifyFiltersBatchComplete, notifyFiltersBatchRolledback, notifyFiltersEarlyCommit, refreshTargetColumnReferencesMap, script, setConflictResolver, start, write
-
Field Details
-
CUR_DATA
- See Also:
-
platform
-
transaction
-
currentDmlStatement
-
currentDmlValues
-
logSqlBuilder
-
isCteExpression
-
hasUncommittedDdl
protected boolean hasUncommittedDdl
-
-
Constructor Details
-
DefaultDatabaseWriter
-
DefaultDatabaseWriter
-
DefaultDatabaseWriter
public DefaultDatabaseWriter(IDatabasePlatform platform, IDatabaseWriterConflictResolver conflictResolver, DatabaseWriterSettings settings)
-
-
Method Details
-
getPlatform
-
getPlatform
-
getPlatform
-
getTargetPlatform
-
getTransaction
-
getTransaction
-
getTransaction
-
getTargetTransaction
-
open
- Specified by:
open
in interfaceIDataResource
- Overrides:
open
in classAbstractDatabaseWriter
-
start
- Specified by:
start
in interfaceIDataWriter
- Overrides:
start
in classAbstractDatabaseWriter
-
end
- Specified by:
end
in interfaceIDataWriter
- Overrides:
end
in classAbstractDatabaseWriter
-
end
- Specified by:
end
in interfaceIDataWriter
- Overrides:
end
in classAbstractDatabaseWriter
-
close
public void close()- Specified by:
close
in interfaceIDataResource
- Overrides:
close
in classAbstractDatabaseWriter
-
commit
protected void commit(boolean earlyCommit) - Overrides:
commit
in classAbstractDatabaseWriter
-
commit
-
rollback
protected void rollback()- Overrides:
rollback
in classAbstractDatabaseWriter
-
isCteExpression
protected boolean isCteExpression() -
replaceCteExpression
protected void replaceCteExpression() -
replaceCteExpression
-
isDml
-
insert
- Specified by:
insert
in classAbstractDatabaseWriter
-
delete
- Specified by:
delete
in classAbstractDatabaseWriter
-
update
protected AbstractDatabaseWriter.LoadStatus update(CsvData data, boolean applyChangesOnly, boolean useConflictDetection) - Specified by:
update
in classAbstractDatabaseWriter
-
checkTargetTableHasColumns
protected void checkTargetTableHasColumns() -
create
- Specified by:
create
in classAbstractDatabaseWriter
-
create
-
sql
- Specified by:
sql
in classAbstractDatabaseWriter
-
requireNewStatement
protected boolean requireNewStatement(DmlStatement.DmlType currentType, CsvData data, boolean applyChangesOnly, boolean useConflictDetection, Conflict.DetectConflict detectType) -
containsNullLookupKeyDataSinceLastStatement
protected boolean containsNullLookupKeyDataSinceLastStatement(DmlStatement.DmlType currentType, CsvData data, Conflict.DetectConflict detectType) -
targetTableWasChangedByFilter
- Overrides:
targetTableWasChangedByFilter
in classAbstractDatabaseWriter
-
logFailureDetails
- Specified by:
logFailureDetails
in classAbstractDatabaseWriter
-
logFailureDetails
protected void logFailureDetails(Throwable e, CsvData data, boolean logLastDmlDetails, Object[] values) - Specified by:
logFailureDetails
in classAbstractDatabaseWriter
-
logDataTruncation
-
dmlValuesToString
-
bindVariables
- Overrides:
bindVariables
in classAbstractDatabaseWriter
-
getSqlStatements
-
preprocessSqlStatement
-
quoteString
-
doesColumnNeedUpdated
-
updateChangedDataIndicator
-
prepare
protected void prepare() -
prepare
-
execute
-
lookupTableAtTarget
- Overrides:
lookupTableAtTarget
in classAbstractDatabaseWriter
-
removeGeneratedColumns
-
getTableKey
-
lookupTableFromCache
-
putTableInCache
-
getCurrentDmlStatement
-
getWriterSettings
- Overrides:
getWriterSettings
in classAbstractDatabaseWriter
-
prepareAndExecute
-
getCurData
-
allowInsertIntoAutoIncrementColumns
- Overrides:
allowInsertIntoAutoIncrementColumns
in classAbstractDatabaseWriter
-