android.database.sqlite
Applications use these classes to manage private databases. If creating a
content provider, you will probably have to use these classes to create and
manage your own database to store content. See Content Providers
to learn the conventions for implementing a content provider. If you are working
with data sent to you by a provider, you do not use these SQLite classes, but
instead use the generic android.database
classes.
The Android SDK and Android emulators both include the
sqlite3 command-line
database tool. On your development machine, run the tool from the
platform-tools/
folder of your SDK. On the emulator, run the tool
with adb shell, for example, adb shell sqlite3
.
The version of SQLite depends on the version of Android. In the past, SQLite upgrades have been delivered as part of a new API level, but more recently SQLite may be upgraded within an API level. See the following table:
Android API | SQLite Version |
---|---|
API 35 | 3.44.3 |
API 34 | 3.42.0 |
API 34 | 3.39 |
API 33 | 3.32 |
API 32 | 3.32 |
API 31 | 3.32 |
API 30 | 3.28 |
API 28 | 3.22 |
API 27 | 3.19 |
API 26 | 3.18 |
API 24 | 3.9 |
API 21 | 3.8 |
API 11 | 3.7 |
API 8 | 3.6 |
API 3 | 3.5 |
API 1 | 3.4 |
Some device manufacturers include different versions of SQLite on their devices. There are two ways to programmatically determine the version number.
- If available, use the sqlite3 tool, for example:
adb shell sqlite3 --version
. - Create and query an in-memory database as shown in the following code sample:
String query = "select sqlite_version() AS sqlite_version"; SQLiteDatabase db = SQLiteDatabase.openOrCreateDatabase(":memory:", null); Cursor cursor = db.rawQuery(query, null); String sqliteVersion = ""; try { if (cursor.moveToNext()) { sqliteVersion = cursor.getString(0); } } finally { cursor.close(); }
Interfaces
SQLiteCursorDriver | A driver for SQLiteCursors that is used to create them and gets notified by the cursors it creates on significant events in their lifetimes. |
SQLiteDatabase.CursorFactory |
Used to allow returning sub-classes of Cursor when calling query.
|
SQLiteTransactionListener | A listener for transaction events. |
Classes
SQLiteClosable | An object created from a SQLiteDatabase that can be closed. |
SQLiteCursor |
A Cursor implementation that exposes results from a query on a
SQLiteDatabase .
|
SQLiteDatabase | Exposes methods to manage a SQLite database. |
SQLiteDatabase.OpenParams |
Wrapper for configuration parameters that are used for opening SQLiteDatabase
|
SQLiteDatabase.OpenParams.Builder |
Builder for OpenParams .
|
SQLiteOpenHelper | A helper class to manage database creation and version management. |
SQLiteProgram | A base class for compiled SQLite programs. |
SQLiteQuery |
Represents a query that reads the resulting rows into a SQLiteQuery .
|
SQLiteQueryBuilder |
This is a convenience class that helps build SQL queries to be sent to
SQLiteDatabase objects.
|
SQLiteRawStatement |
A SQLiteRawStatement represents a SQLite prepared statement.
|
SQLiteStatement | Represents a statement that can be executed against a database. |
Exceptions
SQLiteAbortException | An exception that indicates that the SQLite program was aborted. |
SQLiteAccessPermException | This exception class is used when sqlite can't access the database file due to lack of permissions on the file. |
SQLiteBindOrColumnIndexOutOfRangeException | Thrown if the bind or column parameter index is out of range. |
SQLiteBlobTooBigException | |
SQLiteCantOpenDatabaseException | |
SQLiteConstraintException | An exception that indicates that an integrity constraint was violated. |
SQLiteDatabaseCorruptException | An exception that indicates that the SQLite database file is corrupt. |
SQLiteDatabaseLockedException | Thrown if the database engine was unable to acquire the database locks it needs to do its job. |
SQLiteDatatypeMismatchException | |
SQLiteDiskIOException | Indicates that an IO error occurred while accessing the SQLite database file. |
SQLiteDoneException | An exception that indicates that the SQLite program is done. |
SQLiteException | A SQLite exception that indicates there was an error with SQL parsing or execution. |
SQLiteFullException | An exception that indicates that the SQLite database is full. |
SQLiteMisuseException | This error can occur if the application creates a SQLiteStatement object and allows multiple threads in the application use it at the same time. |
SQLiteOutOfMemoryException | |
SQLiteReadOnlyDatabaseException | |
SQLiteTableLockedException |
Interfaces
Classes
Exceptions
- SQLiteAbortException
- SQLiteAccessPermException
- SQLiteBindOrColumnIndexOutOfRangeException
- SQLiteBlobTooBigException
- SQLiteCantOpenDatabaseException
- SQLiteConstraintException
- SQLiteDatabaseCorruptException
- SQLiteDatabaseLockedException
- SQLiteDatatypeMismatchException
- SQLiteDiskIOException
- SQLiteDoneException
- SQLiteException
- SQLiteFullException
- SQLiteMisuseException
- SQLiteOutOfMemoryException
- SQLiteReadOnlyDatabaseException
- SQLiteTableLockedException