Class CsvConnection

  • All Implemented Interfaces:
    java.lang.AutoCloseable, java.sql.Connection, java.sql.Wrapper

    public class CsvConnection
    extends java.lang.Object
    implements java.sql.Connection
    This class implements the java.sql.Connection JDBC interface for the CsvJdbc driver.
    • Constructor Detail

      • CsvConnection

        protected CsvConnection​(java.lang.String path,
                                java.util.Properties info,
                                java.lang.String urlProperties)
                         throws java.sql.SQLException
        Creates a new CsvConnection that takes the supplied path and properties
        Parameters:
        path - directory where the CSV files are located
        info - set of properties containing custom options
        urlProperties - part of connection URL containing connection properties.
        Throws:
        java.sql.SQLException - if connection cannot be created.
      • CsvConnection

        protected CsvConnection​(TableReader tableReader,
                                java.util.Properties info,
                                java.lang.String urlProperties)
                         throws java.sql.SQLException
        Creates a new database connection.
        Parameters:
        tableReader - user-provided class to return contents of each database table.
        info - set of properties containing custom options.
        urlProperties - part of connection URL containing connection properties.
        Throws:
        java.sql.SQLException - if connection cannot be created.
    • Method Detail

      • getQuoteStyle

        public java.lang.String getQuoteStyle()
      • getTimeZoneName

        public java.lang.String getTimeZoneName()
      • getLocale

        public java.util.Locale getLocale()
      • createStatement

        public java.sql.Statement createStatement()
                                           throws java.sql.SQLException
        Specified by:
        createStatement in interface java.sql.Connection
        Throws:
        java.sql.SQLException
      • prepareStatement

        public java.sql.PreparedStatement prepareStatement​(java.lang.String sql)
                                                    throws java.sql.SQLException
        Specified by:
        prepareStatement in interface java.sql.Connection
        Throws:
        java.sql.SQLException
      • prepareCall

        public java.sql.CallableStatement prepareCall​(java.lang.String sql)
                                               throws java.sql.SQLException
        Specified by:
        prepareCall in interface java.sql.Connection
        Throws:
        java.sql.SQLException
      • nativeSQL

        public java.lang.String nativeSQL​(java.lang.String sql)
                                   throws java.sql.SQLException
        Specified by:
        nativeSQL in interface java.sql.Connection
        Throws:
        java.sql.SQLException
      • setAutoCommit

        public void setAutoCommit​(boolean autoCommit)
                           throws java.sql.SQLException
        Specified by:
        setAutoCommit in interface java.sql.Connection
        Throws:
        java.sql.SQLException
      • getAutoCommit

        public boolean getAutoCommit()
                              throws java.sql.SQLException
        Specified by:
        getAutoCommit in interface java.sql.Connection
        Throws:
        java.sql.SQLException
      • commit

        public void commit()
                    throws java.sql.SQLException
        Specified by:
        commit in interface java.sql.Connection
        Throws:
        java.sql.SQLException
      • rollback

        public void rollback()
                      throws java.sql.SQLException
        Specified by:
        rollback in interface java.sql.Connection
        Throws:
        java.sql.SQLException
      • close

        public void close()
                   throws java.sql.SQLException
        Specified by:
        close in interface java.lang.AutoCloseable
        Specified by:
        close in interface java.sql.Connection
        Throws:
        java.sql.SQLException
      • removeStatement

        public void removeStatement​(java.sql.Statement statement)
        Remove closed statement from list of statements for this connection.
        Parameters:
        statement - statement to be removed.
      • isClosed

        public boolean isClosed()
                         throws java.sql.SQLException
        Specified by:
        isClosed in interface java.sql.Connection
        Throws:
        java.sql.SQLException
      • getMetaData

        public java.sql.DatabaseMetaData getMetaData()
                                              throws java.sql.SQLException
        Specified by:
        getMetaData in interface java.sql.Connection
        Throws:
        java.sql.SQLException
      • setReadOnly

        public void setReadOnly​(boolean readOnly)
                         throws java.sql.SQLException
        Specified by:
        setReadOnly in interface java.sql.Connection
        Throws:
        java.sql.SQLException
      • isReadOnly

        public boolean isReadOnly()
                           throws java.sql.SQLException
        Specified by:
        isReadOnly in interface java.sql.Connection
        Throws:
        java.sql.SQLException
      • setCatalog

        public void setCatalog​(java.lang.String catalog)
                        throws java.sql.SQLException
        Specified by:
        setCatalog in interface java.sql.Connection
        Throws:
        java.sql.SQLException
      • getCatalog

        public java.lang.String getCatalog()
                                    throws java.sql.SQLException
        Specified by:
        getCatalog in interface java.sql.Connection
        Throws:
        java.sql.SQLException
      • setTransactionIsolation

        public void setTransactionIsolation​(int level)
                                     throws java.sql.SQLException
        Specified by:
        setTransactionIsolation in interface java.sql.Connection
        Throws:
        java.sql.SQLException
      • getTransactionIsolation

        public int getTransactionIsolation()
                                    throws java.sql.SQLException
        Specified by:
        getTransactionIsolation in interface java.sql.Connection
        Throws:
        java.sql.SQLException
      • getWarnings

        public java.sql.SQLWarning getWarnings()
                                        throws java.sql.SQLException
        Specified by:
        getWarnings in interface java.sql.Connection
        Throws:
        java.sql.SQLException
      • clearWarnings

        public void clearWarnings()
                           throws java.sql.SQLException
        Specified by:
        clearWarnings in interface java.sql.Connection
        Throws:
        java.sql.SQLException
      • createStatement

        public java.sql.Statement createStatement​(int resultSetType,
                                                  int resultSetConcurrency)
                                           throws java.sql.SQLException
        Specified by:
        createStatement in interface java.sql.Connection
        Throws:
        java.sql.SQLException
      • prepareStatement

        public java.sql.PreparedStatement prepareStatement​(java.lang.String sql,
                                                           int resultSetType,
                                                           int resultSetConcurrency)
                                                    throws java.sql.SQLException
        Specified by:
        prepareStatement in interface java.sql.Connection
        Throws:
        java.sql.SQLException
      • prepareCall

        public java.sql.CallableStatement prepareCall​(java.lang.String sql,
                                                      int resultSetType,
                                                      int resultSetConcurrency)
                                               throws java.sql.SQLException
        Specified by:
        prepareCall in interface java.sql.Connection
        Throws:
        java.sql.SQLException
      • getTypeMap

        public java.util.Map<java.lang.String,​java.lang.Class<?>> getTypeMap()
                                                                            throws java.sql.SQLException
        Specified by:
        getTypeMap in interface java.sql.Connection
        Throws:
        java.sql.SQLException
      • setTypeMap

        public void setTypeMap​(java.util.Map<java.lang.String,​java.lang.Class<?>> map)
                        throws java.sql.SQLException
        Specified by:
        setTypeMap in interface java.sql.Connection
        Throws:
        java.sql.SQLException
      • setHoldability

        public void setHoldability​(int holdability)
                            throws java.sql.SQLException
        Specified by:
        setHoldability in interface java.sql.Connection
        Throws:
        java.sql.SQLException
      • getHoldability

        public int getHoldability()
                           throws java.sql.SQLException
        Specified by:
        getHoldability in interface java.sql.Connection
        Throws:
        java.sql.SQLException
      • createStatement

        public java.sql.Statement createStatement​(int resultSetType,
                                                  int resultSetConcurrency,
                                                  int resultSetHoldability)
                                           throws java.sql.SQLException
        Specified by:
        createStatement in interface java.sql.Connection
        Throws:
        java.sql.SQLException
      • prepareStatement

        public java.sql.PreparedStatement prepareStatement​(java.lang.String sql,
                                                           int resultSetType,
                                                           int resultSetConcurrency,
                                                           int resultSetHoldability)
                                                    throws java.sql.SQLException
        Specified by:
        prepareStatement in interface java.sql.Connection
        Throws:
        java.sql.SQLException
      • prepareCall

        public java.sql.CallableStatement prepareCall​(java.lang.String sql,
                                                      int resultSetType,
                                                      int resultSetConcurrency,
                                                      int resultSetHoldability)
                                               throws java.sql.SQLException
        Specified by:
        prepareCall in interface java.sql.Connection
        Throws:
        java.sql.SQLException
      • prepareStatement

        public java.sql.PreparedStatement prepareStatement​(java.lang.String sql,
                                                           int autoGeneratedKeys)
                                                    throws java.sql.SQLException
        Specified by:
        prepareStatement in interface java.sql.Connection
        Throws:
        java.sql.SQLException
      • prepareStatement

        public java.sql.PreparedStatement prepareStatement​(java.lang.String sql,
                                                           int[] columnIndexes)
                                                    throws java.sql.SQLException
        Specified by:
        prepareStatement in interface java.sql.Connection
        Throws:
        java.sql.SQLException
      • prepareStatement

        public java.sql.PreparedStatement prepareStatement​(java.lang.String sql,
                                                           java.lang.String[] columnNames)
                                                    throws java.sql.SQLException
        Specified by:
        prepareStatement in interface java.sql.Connection
        Throws:
        java.sql.SQLException
      • releaseSavepoint

        public void releaseSavepoint​(java.sql.Savepoint savePoint)
                              throws java.sql.SQLException
        Specified by:
        releaseSavepoint in interface java.sql.Connection
        Throws:
        java.sql.SQLException
      • rollback

        public void rollback​(java.sql.Savepoint savePoint)
                      throws java.sql.SQLException
        Specified by:
        rollback in interface java.sql.Connection
        Throws:
        java.sql.SQLException
      • setSavepoint

        public java.sql.Savepoint setSavepoint()
                                        throws java.sql.SQLException
        Specified by:
        setSavepoint in interface java.sql.Connection
        Throws:
        java.sql.SQLException
      • setSavepoint

        public java.sql.Savepoint setSavepoint​(java.lang.String name)
                                        throws java.sql.SQLException
        Specified by:
        setSavepoint in interface java.sql.Connection
        Throws:
        java.sql.SQLException
      • getPath

        protected java.lang.String getPath()
        Accessor method for the path property
        Returns:
        current value for the path property
      • getTableReader

        protected TableReader getTableReader()
      • getURL

        protected java.lang.String getURL()
      • getExtension

        protected java.lang.String getExtension()
        Accessor method for the extension property
        Returns:
        current value for the extension property
      • getSeparator

        protected java.lang.String getSeparator()
        Accessor method for the separator property
        Returns:
        current value for the separator property
      • getHeaderline

        public java.lang.String getHeaderline​(java.lang.String tableName)
        Accessor method for the headerline property
        Parameters:
        tableName - name of database table.
        Returns:
        current value for the headerline property
      • getQuotechar

        public java.lang.Character getQuotechar()
        Accessor method for the quotechar property
        Returns:
        current value for the quotechar property
      • isSuppressHeaders

        protected boolean isSuppressHeaders()
        Accessor method for the suppressHeaders property
        Returns:
        current value for the suppressHeaders property
      • isHeaderFixedWidth

        protected boolean isHeaderFixedWidth()
      • getFixedWidthColumns

        public java.util.ArrayList<int[]> getFixedWidthColumns()
      • isDefectiveHeaders

        protected boolean isDefectiveHeaders()
        Accessor method for defectiveHeaders property.
        Returns:
        true if defective headers.
      • getSkipLeadingDataLines

        protected int getSkipLeadingDataLines()
        Accessor method for skipLeadingDataLines property.
        Returns:
        number of leading data lines to skip.
      • getCharset

        protected java.lang.String getCharset()
        Accessor method for the charset property
        Returns:
        current value for the suppressHeaders property
      • getTrimHeaders

        public boolean getTrimHeaders()
        Accessor method for the trimHeaders property
        Returns:
        current value for the trimHeaders property
      • getTrimValues

        public boolean getTrimValues()
      • createArrayOf

        public java.sql.Array createArrayOf​(java.lang.String typeName,
                                            java.lang.Object[] elements)
                                     throws java.sql.SQLException
        Specified by:
        createArrayOf in interface java.sql.Connection
        Throws:
        java.sql.SQLException
      • createBlob

        public java.sql.Blob createBlob()
                                 throws java.sql.SQLException
        Specified by:
        createBlob in interface java.sql.Connection
        Throws:
        java.sql.SQLException
      • createClob

        public java.sql.Clob createClob()
                                 throws java.sql.SQLException
        Specified by:
        createClob in interface java.sql.Connection
        Throws:
        java.sql.SQLException
      • createStruct

        public java.sql.Struct createStruct​(java.lang.String typeName,
                                            java.lang.Object[] attributes)
                                     throws java.sql.SQLException
        Specified by:
        createStruct in interface java.sql.Connection
        Throws:
        java.sql.SQLException
      • getClientInfo

        public java.util.Properties getClientInfo()
                                           throws java.sql.SQLException
        Specified by:
        getClientInfo in interface java.sql.Connection
        Throws:
        java.sql.SQLException
      • getClientInfo

        public java.lang.String getClientInfo​(java.lang.String name)
                                       throws java.sql.SQLException
        Specified by:
        getClientInfo in interface java.sql.Connection
        Throws:
        java.sql.SQLException
      • isValid

        public boolean isValid​(int timeout)
                        throws java.sql.SQLException
        Specified by:
        isValid in interface java.sql.Connection
        Throws:
        java.sql.SQLException
      • isWrapperFor

        public boolean isWrapperFor​(java.lang.Class<?> arg0)
                             throws java.sql.SQLException
        Specified by:
        isWrapperFor in interface java.sql.Wrapper
        Throws:
        java.sql.SQLException
      • unwrap

        public <T> T unwrap​(java.lang.Class<T> arg0)
                     throws java.sql.SQLException
        Specified by:
        unwrap in interface java.sql.Wrapper
        Throws:
        java.sql.SQLException
      • setColumnTypes

        @Deprecated
        public void setColumnTypes​(java.lang.String columnTypes)
        Deprecated.
        Pass columnTypes when creating driver. To be removed in a future version.
        Set column types for SQL queries.
        Parameters:
        columnTypes - comma-separated list of data types.
      • getColumnTypes

        public java.lang.String getColumnTypes​(java.lang.String tableName)
      • setIndexedFiles

        @Deprecated
        public void setIndexedFiles​(boolean indexedFiles)
        Deprecated.
        Pass indexedFiles when creating driver. To be removed in a future version.
        Set flag for reading indexed files.
        Parameters:
        indexedFiles - flag true if indexed files are to be read.
      • isIndexedFiles

        public boolean isIndexedFiles()
      • getFileNamePattern

        public java.lang.String getFileNamePattern()
      • getNameParts

        public java.lang.String[] getNameParts()
      • setTimestampFormat

        public void setTimestampFormat​(java.lang.String timestampFormat)
      • getTimestampFormat

        public java.lang.String getTimestampFormat()
      • setDateFormat

        public void setDateFormat​(java.lang.String dateFormat)
      • getDateFormat

        public java.lang.String getDateFormat()
      • setTimeFormat

        public void setTimeFormat​(java.lang.String timeFormat)
      • getTimeFormat

        public java.lang.String getTimeFormat()
      • setCommentChar

        public void setCommentChar​(java.lang.String value)
      • getCommentChar

        public java.lang.String getCommentChar()
      • getSkipLeadingLines

        public int getSkipLeadingLines()
        Returns:
        the skipLeadingLines
      • setSkipLeadingLines

        public void setSkipLeadingLines​(int skipLeadingLines)
        Parameters:
        skipLeadingLines - the skipLeadingLines to set
      • isIgnoreUnparseableLines

        public boolean isIgnoreUnparseableLines()
      • setIgnoreUnparseableLines

        public void setIgnoreUnparseableLines​(boolean ignoreUnparseableLines)
        Parameters:
        ignoreUnparseableLines - the ignoreUnparseableLines to set
      • getMissingValue

        public java.lang.String getMissingValue()
      • setMissingValue

        public void setMissingValue​(java.lang.String missingValue)
      • setFileTailPrepend

        public void setFileTailPrepend​(boolean fileTailPrepend)
      • isFileTailPrepend

        public boolean isFileTailPrepend()
      • getDecryptingCodec

        public CryptoFilter getDecryptingCodec()
      • getSqlFunctions

        public java.util.HashMap<java.lang.String,​java.lang.reflect.Method> getSqlFunctions()
      • createNClob

        public java.sql.NClob createNClob()
                                   throws java.sql.SQLException
        Specified by:
        createNClob in interface java.sql.Connection
        Throws:
        java.sql.SQLException
      • createSQLXML

        public java.sql.SQLXML createSQLXML()
                                     throws java.sql.SQLException
        Specified by:
        createSQLXML in interface java.sql.Connection
        Throws:
        java.sql.SQLException
      • setClientInfo

        public void setClientInfo​(java.util.Properties arg0)
                           throws java.sql.SQLClientInfoException
        Specified by:
        setClientInfo in interface java.sql.Connection
        Throws:
        java.sql.SQLClientInfoException
      • setClientInfo

        public void setClientInfo​(java.lang.String arg0,
                                  java.lang.String arg1)
                           throws java.sql.SQLClientInfoException
        Specified by:
        setClientInfo in interface java.sql.Connection
        Throws:
        java.sql.SQLClientInfoException
      • getNetworkTimeout

        public int getNetworkTimeout()
                              throws java.sql.SQLException
        Specified by:
        getNetworkTimeout in interface java.sql.Connection
        Throws:
        java.sql.SQLException
      • setNetworkTimeout

        public void setNetworkTimeout​(java.util.concurrent.Executor executor,
                                      int milliseconds)
                               throws java.sql.SQLException
        Specified by:
        setNetworkTimeout in interface java.sql.Connection
        Throws:
        java.sql.SQLException
      • abort

        public void abort​(java.util.concurrent.Executor executor)
                   throws java.sql.SQLException
        Specified by:
        abort in interface java.sql.Connection
        Throws:
        java.sql.SQLException
      • getSchema

        public java.lang.String getSchema()
                                   throws java.sql.SQLException
        Specified by:
        getSchema in interface java.sql.Connection
        Throws:
        java.sql.SQLException
      • setSchema

        public void setSchema​(java.lang.String schema)
                       throws java.sql.SQLException
        Specified by:
        setSchema in interface java.sql.Connection
        Throws:
        java.sql.SQLException
      • getTransposedLines

        public int getTransposedLines()
      • getTransposedFieldsToSkip

        public int getTransposedFieldsToSkip()
      • setTransposedFieldsToSkip

        public void setTransposedFieldsToSkip​(int i)
      • getTableNames

        public java.util.List<java.lang.String> getTableNames()
                                                       throws java.sql.SQLException
        Get list of table names (all files in the directory with the correct suffix).
        Returns:
        list of table names.
        Throws:
        java.sql.SQLException - if getting list of table names fails.