Class JDBCWriter

    • Field Summary

      • Fields inherited from class de.xab.porter.transfer.writer.AbstractWriter

        connection
    • Constructor Summary

      Constructors 
      Constructor Description
      JDBCWriter()  
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      java.sql.Connection connect​(de.xab.porter.api.dataconnection.DataConnection dataConnection)  
      void createTable​(de.xab.porter.api.Result<?> data)  
      protected void doWrite​(de.xab.porter.api.Result<?> data)  
      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
      protected java.lang.String getColumns​(java.util.List<de.xab.porter.api.Column> meta, java.lang.String quote)
      generate column part of create DDL
      protected java.lang.String getColumnType​(de.xab.porter.api.Column column)
      map JDBCType from ResultSetMetaData.getColumnType(int)
      protected java.lang.String getConstraints​(java.util.Map<java.lang.Short,​java.lang.String> primaryKeyMap)
      generate constraints part of create DDL
      protected java.lang.String getCreate​(java.lang.String tableIdentifier)
      generate create header
      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
      java.lang.String getIdentifierQuote()  
      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
      protected void writeInDefaultMode​(de.xab.porter.api.Result<?> data)
      write in default mode, each data source has its implements
      protected void writeInPrepareBatchMode​(de.xab.porter.api.Relation relation)
      write data in batch with prepared statement
      protected void writeInStatementBatchMode​(de.xab.porter.api.Relation relation)
      write data in batch
      protected void writeInValueMode​(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
    • Constructor Detail

      • JDBCWriter

        public JDBCWriter()
    • Method Detail

      • createTable

        public void createTable​(de.xab.porter.api.Result<?> data)
        Specified by:
        createTable in interface de.xab.porter.transfer.writer.Writer<java.sql.Connection>
      • doWrite

        protected void doWrite​(de.xab.porter.api.Result<?> data)
        Specified by:
        doWrite in class de.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:
        getIdentifierQuote in class de.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)
        map JDBCType from ResultSetMetaData.getColumnType(int)
      • connect

        public java.sql.Connection connect​(de.xab.porter.api.dataconnection.DataConnection dataConnection)
                                    throws de.xab.porter.transfer.exception.ConnectionException
        Specified by:
        connect in interface de.xab.porter.transfer.connector.Connectable<java.sql.Connection>
        Overrides:
        connect in class de.xab.porter.transfer.writer.AbstractWriter<java.sql.Connection>
        Throws:
        de.xab.porter.transfer.exception.ConnectionException