Package org.sqlite

Class SQLiteConnection

  • All Implemented Interfaces:
    java.lang.AutoCloseable, java.sql.Connection, java.sql.Wrapper
    Direct Known Subclasses:
    JDBC3Connection

    public abstract class SQLiteConnection
    extends java.lang.Object
    implements java.sql.Connection
    • Field Summary

      • Fields inherited from interface java.sql.Connection

        TRANSACTION_NONE, TRANSACTION_READ_COMMITTED, TRANSACTION_READ_UNCOMMITTED, TRANSACTION_REPEATABLE_READ, TRANSACTION_SERIALIZABLE
    • Constructor Summary

      Constructors 
      Constructor Description
      SQLiteConnection​(java.lang.String url, java.lang.String fileName)
      Constructor to create a connection to a database at the given location.
      SQLiteConnection​(java.lang.String url, java.lang.String fileName, java.util.Properties prop)
      Constructor to create a pre-configured connection to a database at the given location.
      SQLiteConnection​(DB db)
      Connection constructor for reusing an existing DB handle
    • Method Summary

      Modifier and Type Method Description
      void abort​(java.util.concurrent.Executor executor)  
      void addCommitListener​(SQLiteCommitListener listener)
      Add a listener for DB commit/rollback events, see https://www.sqlite.org/c3ref/commit_hook.html
      void addUpdateListener​(SQLiteUpdateListener listener)
      Add a listener for DB update events, see https://www.sqlite.org/c3ref/update_hook.html
      protected void checkCursor​(int rst, int rsc, int rsh)
      Checks whether the type, concurrency, and holdability settings for a ResultSet are supported by the SQLite interface.
      protected void checkOpen()
      Whether an SQLite library interface to the database has been established.
      void close()  
      void commit()  
      protected static java.lang.String extractPragmasFromFilename​(java.lang.String url, java.lang.String filename, java.util.Properties prop)
      Extracts PRAGMA values from the filename and sets them into the Properties object which will be used to build the SQLConfig.
      boolean getAutoCommit()  
      int getBusyTimeout()  
      SQLiteConnectionConfig getConnectionConfig()  
      DB getDatabase()  
      void getLimit​(SQLiteLimits limit)  
      java.sql.DatabaseMetaData getMetaData()  
      int getNetworkTimeout()  
      java.lang.String getSchema()  
      CoreDatabaseMetaData getSQLiteDatabaseMetaData()  
      int getTransactionIsolation()  
      java.lang.String getUrl()  
      boolean isClosed()  
      java.lang.String libversion()  
      void removeCommitListener​(SQLiteCommitListener listener)
      Remove a listener registered for DB commit/rollback events.
      void removeUpdateListener​(SQLiteUpdateListener listener)
      Remove a listener registered for DB update events.
      void rollback()  
      void setAutoCommit​(boolean ac)  
      void setBusyTimeout​(int timeoutMillis)
      Sets the timeout value for the connection.
      void setLimit​(SQLiteLimits limit, int value)  
      void setNetworkTimeout​(java.util.concurrent.Executor executor, int milliseconds)  
      void setSchema​(java.lang.String schema)  
      void setTransactionIsolation​(int level)  
      protected void setTransactionMode​(SQLiteConfig.TransactionMode mode)
      Sets the mode that will be used to start transactions on this connection.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
      • Methods inherited from interface java.sql.Connection

        beginRequest, clearWarnings, createArrayOf, createBlob, createClob, createNClob, createSQLXML, createStatement, createStatement, createStatement, createStruct, endRequest, getCatalog, getClientInfo, getClientInfo, getHoldability, getTypeMap, getWarnings, isReadOnly, isValid, nativeSQL, prepareCall, prepareCall, prepareCall, prepareStatement, prepareStatement, prepareStatement, prepareStatement, prepareStatement, prepareStatement, releaseSavepoint, rollback, setCatalog, setClientInfo, setClientInfo, setHoldability, setReadOnly, setSavepoint, setSavepoint, setShardingKey, setShardingKey, setShardingKeyIfValid, setShardingKeyIfValid, setTypeMap
      • Methods inherited from interface java.sql.Wrapper

        isWrapperFor, unwrap
    • Constructor Detail

      • SQLiteConnection

        public SQLiteConnection​(DB db)
        Connection constructor for reusing an existing DB handle
        Parameters:
        db -
      • SQLiteConnection

        public SQLiteConnection​(java.lang.String url,
                                java.lang.String fileName)
                         throws java.sql.SQLException
        Constructor to create a connection to a database at the given location.
        Parameters:
        url - The location of the database.
        fileName - The database.
        Throws:
        java.sql.SQLException
      • SQLiteConnection

        public SQLiteConnection​(java.lang.String url,
                                java.lang.String fileName,
                                java.util.Properties prop)
                         throws java.sql.SQLException
        Constructor to create a pre-configured connection to a database at the given location.
        Parameters:
        url - The location of the database file.
        fileName - The database.
        prop - The configurations to apply.
        Throws:
        java.sql.SQLException
    • Method Detail

      • getSQLiteDatabaseMetaData

        public CoreDatabaseMetaData getSQLiteDatabaseMetaData()
                                                       throws java.sql.SQLException
        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
      • getUrl

        public java.lang.String getUrl()
      • setSchema

        public void setSchema​(java.lang.String schema)
                       throws java.sql.SQLException
        Specified by:
        setSchema 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
      • 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
      • 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
      • getNetworkTimeout

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

        protected void checkCursor​(int rst,
                                   int rsc,
                                   int rsh)
                            throws java.sql.SQLException
        Checks whether the type, concurrency, and holdability settings for a ResultSet are supported by the SQLite interface. Supported settings are:
        • type: ResultSet.TYPE_FORWARD_ONLY
        • concurrency: ResultSet.CONCUR_READ_ONLY)
        • holdability: ResultSet.CLOSE_CURSORS_AT_COMMIT
        Parameters:
        rst - the type setting.
        rsc - the concurrency setting.
        rsh - the holdability setting.
        Throws:
        java.sql.SQLException
      • getTransactionIsolation

        public int getTransactionIsolation()
        Specified by:
        getTransactionIsolation in interface java.sql.Connection
        See Also:
        Connection.getTransactionIsolation()
      • setTransactionIsolation

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

        public DB getDatabase()
      • getAutoCommit

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

        public void setAutoCommit​(boolean ac)
                           throws java.sql.SQLException
        Specified by:
        setAutoCommit in interface java.sql.Connection
        Throws:
        java.sql.SQLException
        See Also:
        Connection.setAutoCommit(boolean)
      • setBusyTimeout

        public void setBusyTimeout​(int timeoutMillis)
                            throws java.sql.SQLException
        Sets the timeout value for the connection. A timeout value less than or equal to zero turns off all busy handlers.
        Parameters:
        timeoutMillis - The timeout value in milliseconds.
        Throws:
        java.sql.SQLException
        See Also:
        http://www.sqlite.org/c3ref/busy_timeout.html
      • setLimit

        public void setLimit​(SQLiteLimits limit,
                             int value)
                      throws java.sql.SQLException
        Throws:
        java.sql.SQLException
      • getLimit

        public void getLimit​(SQLiteLimits limit)
                      throws java.sql.SQLException
        Throws:
        java.sql.SQLException
      • isClosed

        public boolean isClosed()
                         throws java.sql.SQLException
        Specified by:
        isClosed 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
        See Also:
        Connection.close()
      • checkOpen

        protected void checkOpen()
                          throws java.sql.SQLException
        Whether an SQLite library interface to the database has been established.
        Throws:
        java.sql.SQLException
      • commit

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

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

        public void addUpdateListener​(SQLiteUpdateListener listener)
        Add a listener for DB update events, see https://www.sqlite.org/c3ref/update_hook.html
        Parameters:
        listener - The listener to receive update events
      • removeUpdateListener

        public void removeUpdateListener​(SQLiteUpdateListener listener)
        Remove a listener registered for DB update events.
        Parameters:
        listener - The listener to no longer receive update events
      • addCommitListener

        public void addCommitListener​(SQLiteCommitListener listener)
        Add a listener for DB commit/rollback events, see https://www.sqlite.org/c3ref/commit_hook.html
        Parameters:
        listener - The listener to receive commit events
      • removeCommitListener

        public void removeCommitListener​(SQLiteCommitListener listener)
        Remove a listener registered for DB commit/rollback events.
        Parameters:
        listener - The listener to no longer receive commit/rollback events.
      • extractPragmasFromFilename

        protected static java.lang.String extractPragmasFromFilename​(java.lang.String url,
                                                                     java.lang.String filename,
                                                                     java.util.Properties prop)
                                                              throws java.sql.SQLException
        Extracts PRAGMA values from the filename and sets them into the Properties object which will be used to build the SQLConfig. The sanitized filename is returned.
        Parameters:
        filename -
        prop -
        Returns:
        a PRAGMA-sanitized filename
        Throws:
        java.sql.SQLException