Package org.sqlite
Class SQLiteConnection
- java.lang.Object
-
- org.sqlite.SQLiteConnection
-
- All Implemented Interfaces:
AutoCloseable,Connection,Wrapper
- Direct Known Subclasses:
JDBC3Connection
public abstract class SQLiteConnection extends Object implements 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(String url, String fileName)Constructor to create a connection to a database at the given location.SQLiteConnection(String url, String fileName, 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
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description voidabort(Executor executor)voidaddCommitListener(SQLiteCommitListener listener)Add a listener for DB commit/rollback events, see https://www.sqlite.org/c3ref/commit_hook.htmlvoidaddUpdateListener(SQLiteUpdateListener listener)Add a listener for DB update events, see https://www.sqlite.org/c3ref/update_hook.htmlprotected voidcheckCursor(int rst, int rsc, int rsh)Checks whether the type, concurrency, and holdability settings for aResultSetare supported by the SQLite interface.protected voidcheckOpen()Whether an SQLite library interface to the database has been established.voidclose()voidcommit()voiddeserialize(String schema, byte[] buff)Deserialize the schema using the given byte array.protected static StringextractPragmasFromFilename(String url, String filename, Properties prop)Extracts PRAGMA values from the filename and sets them into the Properties object which will be used to build the SQLConfig.booleangetAutoCommit()intgetBusyTimeout()SQLiteConnectionConfiggetConnectionConfig()SQLiteConfig.TransactionModegetCurrentTransactionMode()DBgetDatabase()voidgetLimit(SQLiteLimits limit)DatabaseMetaDatagetMetaData()intgetNetworkTimeout()StringgetSchema()CoreDatabaseMetaDatagetSQLiteDatabaseMetaData()intgetTransactionIsolation()StringgetUrl()booleanisClosed()booleanisFirstStatementExecuted()Stringlibversion()voidremoveCommitListener(SQLiteCommitListener listener)Remove a listener registered for DB commit/rollback events.voidremoveUpdateListener(SQLiteUpdateListener listener)Remove a listener registered for DB update events.voidrollback()byte[]serialize(String schema)Returns a byte array representing the schema content.voidsetAutoCommit(boolean ac)voidsetBusyTimeout(int timeoutMillis)Sets the timeout value for the connection.voidsetCurrentTransactionMode(SQLiteConfig.TransactionMode currentTransactionMode)voidsetFirstStatementExecuted(boolean firstStatementExecuted)voidsetLimit(SQLiteLimits limit, int value)voidsetNetworkTimeout(Executor executor, int milliseconds)voidsetSchema(String schema)voidsetTransactionIsolation(int level)protected voidsetTransactionMode(SQLiteConfig.TransactionMode mode)Sets the mode that will be used to start transactions on this connection.protected StringtransactionPrefix()-
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(String url, String fileName) throws SQLException
Constructor to create a connection to a database at the given location.- Parameters:
url- The location of the database.fileName- The database.- Throws:
SQLException
-
SQLiteConnection
public SQLiteConnection(String url, String fileName, Properties prop) throws 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:
SQLException
-
-
Method Detail
-
getCurrentTransactionMode
public SQLiteConfig.TransactionMode getCurrentTransactionMode()
-
setCurrentTransactionMode
public void setCurrentTransactionMode(SQLiteConfig.TransactionMode currentTransactionMode)
-
setFirstStatementExecuted
public void setFirstStatementExecuted(boolean firstStatementExecuted)
-
isFirstStatementExecuted
public boolean isFirstStatementExecuted()
-
getConnectionConfig
public SQLiteConnectionConfig getConnectionConfig()
-
getSQLiteDatabaseMetaData
public CoreDatabaseMetaData getSQLiteDatabaseMetaData() throws SQLException
- Throws:
SQLException
-
getMetaData
public DatabaseMetaData getMetaData() throws SQLException
- Specified by:
getMetaDatain interfaceConnection- Throws:
SQLException
-
getUrl
public String getUrl()
-
setSchema
public void setSchema(String schema) throws SQLException
- Specified by:
setSchemain interfaceConnection- Throws:
SQLException
-
getSchema
public String getSchema() throws SQLException
- Specified by:
getSchemain interfaceConnection- Throws:
SQLException
-
abort
public void abort(Executor executor) throws SQLException
- Specified by:
abortin interfaceConnection- Throws:
SQLException
-
setNetworkTimeout
public void setNetworkTimeout(Executor executor, int milliseconds) throws SQLException
- Specified by:
setNetworkTimeoutin interfaceConnection- Throws:
SQLException
-
getNetworkTimeout
public int getNetworkTimeout() throws SQLException- Specified by:
getNetworkTimeoutin interfaceConnection- Throws:
SQLException
-
checkCursor
protected void checkCursor(int rst, int rsc, int rsh) throws SQLExceptionChecks whether the type, concurrency, and holdability settings for aResultSetare 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:
SQLException
- type:
-
setTransactionMode
protected void setTransactionMode(SQLiteConfig.TransactionMode mode)
Sets the mode that will be used to start transactions on this connection.- Parameters:
mode- One ofSQLiteConfig.TransactionMode- See Also:
- https://www.sqlite.org/lang_transaction.html
-
getTransactionIsolation
public int getTransactionIsolation()
- Specified by:
getTransactionIsolationin interfaceConnection- See Also:
Connection.getTransactionIsolation()
-
setTransactionIsolation
public void setTransactionIsolation(int level) throws SQLException- Specified by:
setTransactionIsolationin interfaceConnection- Throws:
SQLException- See Also:
Connection.setTransactionIsolation(int)
-
getDatabase
public DB getDatabase()
-
getAutoCommit
public boolean getAutoCommit() throws SQLException- Specified by:
getAutoCommitin interfaceConnection- Throws:
SQLException- See Also:
Connection.getAutoCommit()
-
setAutoCommit
public void setAutoCommit(boolean ac) throws SQLException- Specified by:
setAutoCommitin interfaceConnection- Throws:
SQLException- See Also:
Connection.setAutoCommit(boolean)
-
getBusyTimeout
public int getBusyTimeout()
- Returns:
- The busy timeout value for the connection.
- See Also:
- https://www.sqlite.org/c3ref/busy_timeout.html
-
setBusyTimeout
public void setBusyTimeout(int timeoutMillis) throws SQLExceptionSets 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:
SQLException- See Also:
- https://www.sqlite.org/c3ref/busy_timeout.html
-
setLimit
public void setLimit(SQLiteLimits limit, int value) throws SQLException
- Throws:
SQLException
-
getLimit
public void getLimit(SQLiteLimits limit) throws SQLException
- Throws:
SQLException
-
isClosed
public boolean isClosed() throws SQLException- Specified by:
isClosedin interfaceConnection- Throws:
SQLException
-
close
public void close() throws SQLException- Specified by:
closein interfaceAutoCloseable- Specified by:
closein interfaceConnection- Throws:
SQLException- See Also:
Connection.close()
-
checkOpen
protected void checkOpen() throws SQLExceptionWhether an SQLite library interface to the database has been established.- Throws:
SQLException
-
libversion
public String libversion() throws SQLException
- Returns:
- Compile-time library version numbers.
- Throws:
SQLException- See Also:
- https://www.sqlite.org/c3ref/c_source_id.html
-
commit
public void commit() throws SQLException- Specified by:
commitin interfaceConnection- Throws:
SQLException- See Also:
Connection.commit()
-
rollback
public void rollback() throws SQLException- Specified by:
rollbackin interfaceConnection- Throws:
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 String extractPragmasFromFilename(String url, String filename, Properties prop) throws 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:
SQLException
-
transactionPrefix
protected String transactionPrefix()
-
serialize
public byte[] serialize(String schema) throws SQLException
Returns a byte array representing the schema content. This method is intended for in-memory schemas. Serialized databases are limited to 2gb.- Parameters:
schema- The schema to serialize- Returns:
- A byte[] holding the database content
- Throws:
SQLException
-
deserialize
public void deserialize(String schema, byte[] buff) throws SQLException
Deserialize the schema using the given byte array. This method is intended for in-memory database. The call will replace the content of an existing schema. To make sure there is an existing schema, first execute ATTACH ':memory:' AS schema_name- Parameters:
schema- The schema to serializebuff- The buffer to deserialize- Throws:
SQLException
-
-