- java.lang.Object
-
- de.xab.porter.transfer.writer.AbstractWriter<java.sql.Connection>
-
- de.xab.porter.transfer.jdbc.writer.JDBCWriter
-
- All Implemented Interfaces:
de.xab.porter.transfer.connector.Connectable<java.sql.Connection>,JDBCConnector,de.xab.porter.transfer.writer.Writer<java.sql.Connection>
- Direct Known Subclasses:
ClickhouseWriter,DorisWriter,MySQLWriter,PostgreSQLWriter
public class JDBCWriter extends de.xab.porter.transfer.writer.AbstractWriter<java.sql.Connection> implements JDBCConnector
common JDBC writer
-
-
Constructor Summary
Constructors Constructor Description JDBCWriter()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description java.sql.Connectionconnect(de.xab.porter.api.dataconnection.DataConnection dataConnection)voidcreateTable(de.xab.porter.api.Result<?> data)protected voiddoWrite(de.xab.porter.api.Result<?> data)protected java.lang.StringgetAfterDDL(java.util.Map<java.lang.Short,java.lang.String> primaryKeyMap, java.lang.String tableIdentifier, java.lang.String quote, java.util.List<de.xab.porter.api.Column> meta)generate additional part after create DDL, some data source may override itprotected java.lang.StringgetColumns(java.util.List<de.xab.porter.api.Column> meta, java.lang.String quote)generate column part of create DDLprotected java.lang.StringgetColumnType(de.xab.porter.api.Column column)mapJDBCTypefromResultSetMetaData.getColumnType(int)protected java.lang.StringgetConstraints(java.util.Map<java.lang.Short,java.lang.String> primaryKeyMap)generate constraints part of create DDLprotected java.lang.StringgetCreate(java.lang.String tableIdentifier)generate create headerprotected java.lang.StringgetCreateDDL(java.lang.String tableIdentifier, java.lang.String quote, java.util.List<de.xab.porter.api.Column> meta)generate create DDLjava.lang.StringgetIdentifierQuote()protected java.util.Map<java.lang.Short,java.lang.String>sortPrimaryKey(java.util.List<de.xab.porter.api.Column> meta, java.lang.String quote)keep primary key order with origin table/view constraint, sorted by primaryKeySeqprotected voidwriteInDefaultMode(de.xab.porter.api.Result<?> data)write in default mode, each data source has its implementsprotected voidwriteInPrepareBatchMode(de.xab.porter.api.Relation relation)write data in batch with prepared statementprotected voidwriteInStatementBatchMode(de.xab.porter.api.Relation relation)write data in batchprotected voidwriteInValueMode(de.xab.porter.api.Relation relation)write data with one insert SQL and multi rows-
Methods inherited from class de.xab.porter.transfer.writer.AbstractWriter
close, closed, getChannel, getColumnIdentifier, getConnector, getTableIdentifier, setChannel, setConnector, write
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface de.xab.porter.transfer.connector.Connectable
close, closed, getConnector, setConnector
-
Methods inherited from interface de.xab.porter.transfer.jdbc.connector.JDBCConnector
getJDBCUrl
-
-
-
-
Method Detail
-
createTable
public void createTable(de.xab.porter.api.Result<?> data)
- Specified by:
createTablein interfacede.xab.porter.transfer.writer.Writer<java.sql.Connection>
-
doWrite
protected void doWrite(de.xab.porter.api.Result<?> data)
- Specified by:
doWritein classde.xab.porter.transfer.writer.AbstractWriter<java.sql.Connection>
-
writeInValueMode
protected void writeInValueMode(de.xab.porter.api.Relation relation)
write data with one insert SQL and multi rows
-
writeInStatementBatchMode
protected void writeInStatementBatchMode(de.xab.porter.api.Relation relation)
write data in batch
-
writeInPrepareBatchMode
protected void writeInPrepareBatchMode(de.xab.porter.api.Relation relation)
write data in batch with prepared statement
-
writeInDefaultMode
protected void writeInDefaultMode(de.xab.porter.api.Result<?> data)
write in default mode, each data source has its implements
-
getIdentifierQuote
public java.lang.String getIdentifierQuote()
- Specified by:
getIdentifierQuotein classde.xab.porter.transfer.writer.AbstractWriter<java.sql.Connection>
-
getCreateDDL
protected java.lang.String getCreateDDL(java.lang.String tableIdentifier, java.lang.String quote, java.util.List<de.xab.porter.api.Column> meta)generate create DDL
-
getCreate
protected java.lang.String getCreate(java.lang.String tableIdentifier)
generate create header
-
getColumns
protected java.lang.String getColumns(java.util.List<de.xab.porter.api.Column> meta, java.lang.String quote)generate column part of create DDL
-
getConstraints
protected java.lang.String getConstraints(java.util.Map<java.lang.Short,java.lang.String> primaryKeyMap)
generate constraints part of create DDL
-
getAfterDDL
protected java.lang.String getAfterDDL(java.util.Map<java.lang.Short,java.lang.String> primaryKeyMap, java.lang.String tableIdentifier, java.lang.String quote, java.util.List<de.xab.porter.api.Column> meta)generate additional part after create DDL, some data source may override it
-
sortPrimaryKey
protected java.util.Map<java.lang.Short,java.lang.String> sortPrimaryKey(java.util.List<de.xab.porter.api.Column> meta, java.lang.String quote)keep primary key order with origin table/view constraint, sorted by primaryKeySeq
-
getColumnType
protected java.lang.String getColumnType(de.xab.porter.api.Column column)
mapJDBCTypefromResultSetMetaData.getColumnType(int)
-
connect
public java.sql.Connection connect(de.xab.porter.api.dataconnection.DataConnection dataConnection) throws de.xab.porter.transfer.exception.ConnectionException- Specified by:
connectin interfacede.xab.porter.transfer.connector.Connectable<java.sql.Connection>- Overrides:
connectin classde.xab.porter.transfer.writer.AbstractWriter<java.sql.Connection>- Throws:
de.xab.porter.transfer.exception.ConnectionException
-
-