Class SQLServerBulkCSVFileRecord

java.lang.Object
com.microsoft.sqlserver.jdbc.SQLServerBulkCSVFileRecord
All Implemented Interfaces:
ISQLServerBulkData, ISQLServerBulkRecord, java.io.Serializable, java.lang.AutoCloseable

public class SQLServerBulkCSVFileRecord
extends java.lang.Object
implements java.lang.AutoCloseable
Provides a simple implementation of the ISQLServerBulkRecord interface that can be used to read in the basic Java data types from a delimited file where each line represents a row of data.
See Also:
Serialized Form
  • Field Summary

    Fields 
    Modifier and Type Field Description
    protected java.util.Map<java.lang.Integer,​com.microsoft.sqlserver.jdbc.SQLServerBulkRecord.ColumnMetadata> columnMetadata  
    protected java.lang.String[] columnNames  
    protected java.time.format.DateTimeFormatter dateTimeFormatter  
    protected static java.util.logging.Logger loggerExternal  
    protected java.lang.String loggerPackageName  
    protected java.time.format.DateTimeFormatter timeFormatter  
  • Constructor Summary

    Constructors 
    Constructor Description
    SQLServerBulkCSVFileRecord​(java.io.InputStream fileToParse, java.lang.String encoding, java.lang.String delimiter, boolean firstLineIsColumnNames)
    Constructs a SQLServerBulkCSVFileRecord to parse data from a delimited file with the given encoding.
    SQLServerBulkCSVFileRecord​(java.lang.String fileToParse, boolean firstLineIsColumnNames)
    Constructs a SQLServerBulkCSVFileRecord to parse data from a CSV file with the default encoding.
    SQLServerBulkCSVFileRecord​(java.lang.String fileToParse, java.lang.String encoding, boolean firstLineIsColumnNames)
    Constructs a SQLServerBulkCSVFileRecord to parse data from a CSV file with the given encoding.
    SQLServerBulkCSVFileRecord​(java.lang.String fileToParse, java.lang.String encoding, java.lang.String delimiter, boolean firstLineIsColumnNames)
    Constructs a simple reader to parse data from a delimited file with the given encoding.
  • Method Summary

    Modifier and Type Method Description
    void addColumnMetadata​(int positionInSource, java.lang.String name, int jdbcType, int precision, int scale)
    Adds metadata for the given column in the file.
    void addColumnMetadata​(int positionInSource, java.lang.String name, int jdbcType, int precision, int scale, java.time.format.DateTimeFormatter dateTimeFormatter)
    Adds metadata for the given column in the file.
    protected void checkDuplicateColumnName​(int positionInTable, java.lang.String colName)  
    void close()
    Releases any resources associated with the file reader.
    java.time.format.DateTimeFormatter getColumnDateTimeFormatter​(int column)
    Returns the dateTimeFormatter for the given column.
    java.lang.String getColumnName​(int column)
    Returns the name of the given column.
    java.util.Set<java.lang.Integer> getColumnOrdinals()
    Returns the ordinals for each of the columns represented in this data record.
    int getColumnType​(int column)
    Returns the JDBC data type of the given column.
    int getPrecision​(int column)
    Returns the precision for the given column.
    java.lang.Object[] getRowData()
    Returns the data for the current row as an array of Objects.
    int getScale​(int column)
    Returns the scale for the given column.
    boolean isAutoIncrement​(int column)
    Returns whether the column represents an identity column.
    boolean next()
    Advances to the next data row.
    void setTimestampWithTimezoneFormat​(java.lang.String dateTimeFormat)
    Sets the format for reading in dates from the file.
    void setTimestampWithTimezoneFormat​(java.time.format.DateTimeFormatter dateTimeFormatter)
    Sets the format for reading in dates from the file.
    void setTimeWithTimezoneFormat​(java.lang.String timeFormat)
    Sets the format for reading in dates from the file.
    void setTimeWithTimezoneFormat​(java.time.format.DateTimeFormatter dateTimeFormatter)
    Sets the format for reading in dates from the file.
    protected void throwInvalidArgument​(java.lang.String argument)  

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Field Details

    • columnNames

      protected java.lang.String[] columnNames
    • columnMetadata

      protected java.util.Map<java.lang.Integer,​com.microsoft.sqlserver.jdbc.SQLServerBulkRecord.ColumnMetadata> columnMetadata
    • dateTimeFormatter

      protected java.time.format.DateTimeFormatter dateTimeFormatter
    • timeFormatter

      protected java.time.format.DateTimeFormatter timeFormatter
    • loggerPackageName

      protected java.lang.String loggerPackageName
    • loggerExternal

      protected static java.util.logging.Logger loggerExternal
  • Constructor Details

    • SQLServerBulkCSVFileRecord

      public SQLServerBulkCSVFileRecord​(java.lang.String fileToParse, java.lang.String encoding, java.lang.String delimiter, boolean firstLineIsColumnNames) throws SQLServerException
      Constructs a simple reader to parse data from a delimited file with the given encoding.
      Parameters:
      fileToParse - File to parse data from
      encoding - Charset encoding to use for reading the file, or NULL for the default encoding.
      delimiter - Delimiter to used to separate each column
      firstLineIsColumnNames - True if the first line of the file should be parsed as column names; false otherwise
      Throws:
      SQLServerException - If the arguments are invalid, there are any errors in reading the file, or the file is empty
    • SQLServerBulkCSVFileRecord

      public SQLServerBulkCSVFileRecord​(java.io.InputStream fileToParse, java.lang.String encoding, java.lang.String delimiter, boolean firstLineIsColumnNames) throws SQLServerException
      Constructs a SQLServerBulkCSVFileRecord to parse data from a delimited file with the given encoding.
      Parameters:
      fileToParse - InputStream to parse data from
      encoding - Charset encoding to use for reading the file, or NULL for the default encoding.
      delimiter - Delimiter to used to separate each column
      firstLineIsColumnNames - True if the first line of the file should be parsed as column names; false otherwise
      Throws:
      SQLServerException - If the arguments are invalid, there are any errors in reading the file, or the file is empty
    • SQLServerBulkCSVFileRecord

      public SQLServerBulkCSVFileRecord​(java.lang.String fileToParse, java.lang.String encoding, boolean firstLineIsColumnNames) throws SQLServerException
      Constructs a SQLServerBulkCSVFileRecord to parse data from a CSV file with the given encoding.
      Parameters:
      fileToParse - File to parse data from
      encoding - Charset encoding to use for reading the file.
      firstLineIsColumnNames - True if the first line of the file should be parsed as column names; false otherwise
      Throws:
      SQLServerException - If the arguments are invalid, there are any errors in reading the file, or the file is empty
    • SQLServerBulkCSVFileRecord

      public SQLServerBulkCSVFileRecord​(java.lang.String fileToParse, boolean firstLineIsColumnNames) throws SQLServerException
      Constructs a SQLServerBulkCSVFileRecord to parse data from a CSV file with the default encoding.
      Parameters:
      fileToParse - File to parse data from
      firstLineIsColumnNames - True if the first line of the file should be parsed as column names; false otherwise
      Throws:
      SQLServerException - If the arguments are invalid, there are any errors in reading the file, or the file is empty
  • Method Details