# SupportSQLiteOpenHelper

added in[version 1.1.0](https://developer.android.com/topic/libraries/support-library/revisions)  
belongs to Maven artifact android.arch.persistence:db:1.1.0-beta2  

# SupportSQLiteOpenHelper

| The`android.arch`Architecture Components packages are no longer maintained. They have been superseded by the corresponding[androidx.\*](https://developer.android.com/jetpack/androidx/migrate)packages. See[androidx.sqlite.db.SupportSQLiteOpenHelper](https://developer.android.com/reference/androidx/sqlite/db/SupportSQLiteOpenHelper)instead.

`
public


interface
SupportSQLiteOpenHelper
`  
`


`

|-----------------------------------------------------|
| android.arch.persistence.db.SupportSQLiteOpenHelper |

<br />

*** ** * ** ***

An interface to map the behavior of[SQLiteOpenHelper](https://developer.android.com/reference/android/database/sqlite/SQLiteOpenHelper.html). Note that since that class requires overriding certain methods, support implementation uses[create(Configuration)](https://developer.android.com/reference/android/arch/persistence/db/SupportSQLiteOpenHelper.Factory#create(android.arch.persistence.db.SupportSQLiteOpenHelper.Configuration))to create this and[SupportSQLiteOpenHelper.Callback](https://developer.android.com/reference/android/arch/persistence/db/SupportSQLiteOpenHelper.Callback)to implement the methods that should be overridden.

## Summary

|                                                                                                                                                                                                                           ### Nested classes                                                                                                                                                                                                                            ||
|--------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| ` class`     | [SupportSQLiteOpenHelper.Callback](https://developer.android.com/reference/android/arch/persistence/db/SupportSQLiteOpenHelper.Callback) Handles various lifecycle events for the SQLite connection, similar to[SQLiteOpenHelper](https://developer.android.com/reference/android/database/sqlite/SQLiteOpenHelper.html).                                                                                                                                 |
| ` class`     | [SupportSQLiteOpenHelper.Configuration](https://developer.android.com/reference/android/arch/persistence/db/SupportSQLiteOpenHelper.Configuration) The configuration to create an SQLite open helper object using[SupportSQLiteOpenHelper.Factory](https://developer.android.com/reference/android/arch/persistence/db/SupportSQLiteOpenHelper.Factory).                                                                                                  |
| ` interface` | [SupportSQLiteOpenHelper.Factory](https://developer.android.com/reference/android/arch/persistence/db/SupportSQLiteOpenHelper.Factory) Factory class to create instances of[SupportSQLiteOpenHelper](https://developer.android.com/reference/android/arch/persistence/db/SupportSQLiteOpenHelper)using[SupportSQLiteOpenHelper.Configuration](https://developer.android.com/reference/android/arch/persistence/db/SupportSQLiteOpenHelper.Configuration). |

|                                                                                                                                                                                     ### Public methods                                                                                                                                                                                      ||
|--------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| ` abstract void`                                                                                                               | ` `[close](https://developer.android.com/reference/android/arch/persistence/db/SupportSQLiteOpenHelper#close())`() ` Close any open database object.                                                                                                        |
| ` abstract String`                                                                                                             | ` `[getDatabaseName](https://developer.android.com/reference/android/arch/persistence/db/SupportSQLiteOpenHelper#getDatabaseName())`() ` Return the name of the SQLite database being opened, as given to the constructor.                                  |
| ` abstract `[SupportSQLiteDatabase](https://developer.android.com/reference/android/arch/persistence/db/SupportSQLiteDatabase) | ` `[getReadableDatabase](https://developer.android.com/reference/android/arch/persistence/db/SupportSQLiteOpenHelper#getReadableDatabase())`() ` Create and/or open a database.                                                                             |
| ` abstract `[SupportSQLiteDatabase](https://developer.android.com/reference/android/arch/persistence/db/SupportSQLiteDatabase) | ` `[getWritableDatabase](https://developer.android.com/reference/android/arch/persistence/db/SupportSQLiteOpenHelper#getWritableDatabase())`() ` Create and/or open a database that will be used for reading and writing.                                   |
| ` abstract void`                                                                                                               | ` `[setWriteAheadLoggingEnabled](https://developer.android.com/reference/android/arch/persistence/db/SupportSQLiteOpenHelper#setWriteAheadLoggingEnabled(boolean))`(boolean enabled) ` Enables or disables the use of write-ahead logging for the database. |

## Public methods

### close

added in[version 1.1.0](https://developer.android.com/topic/libraries/support-library/revisions)  

```
void close ()
```

Close any open database object.

<br />

### getDatabaseName

added in[version 1.1.0](https://developer.android.com/topic/libraries/support-library/revisions)  

```
String getDatabaseName ()
```

Return the name of the SQLite database being opened, as given to the constructor.

<br />

|     Returns      ||
|----------|--------|
| `String` | <br /> |

### getReadableDatabase

added in[version 1.1.0](https://developer.android.com/topic/libraries/support-library/revisions)  

```
SupportSQLiteDatabase getReadableDatabase ()
```

Create and/or open a database. This will be the same object returned by[getWritableDatabase()](https://developer.android.com/reference/android/arch/persistence/db/SupportSQLiteOpenHelper#getWritableDatabase())unless some problem, such as a full disk, requires the database to be opened read-only. In that case, a read-only database object will be returned. If the problem is fixed, a future call to[getWritableDatabase()](https://developer.android.com/reference/android/arch/persistence/db/SupportSQLiteOpenHelper#getWritableDatabase())may succeed, in which case the read-only database object will be closed and the read/write object will be returned in the future.

Like[getWritableDatabase()](https://developer.android.com/reference/android/arch/persistence/db/SupportSQLiteOpenHelper#getWritableDatabase()), this method may take a long time to return, so you should not call it from the application main thread, including from[ContentProvider.onCreate()](https://developer.android.com/reference/android/content/ContentProvider.html#onCreate()).

<br />

|                                                                                                                                                                                                           Returns                                                                                                                                                                                                            ||
|--------------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| [SupportSQLiteDatabase](https://developer.android.com/reference/android/arch/persistence/db/SupportSQLiteDatabase) | a database object valid until[getWritableDatabase()](https://developer.android.com/reference/android/arch/persistence/db/SupportSQLiteOpenHelper#getWritableDatabase())or[close()](https://developer.android.com/reference/android/arch/persistence/db/SupportSQLiteOpenHelper#close())is called. <br /> |

|                                                                  Throws                                                                   ||
|---------------------------------------------------------------------------------------------------------|----------------------------------|
| [SQLiteException](https://developer.android.com/reference/android/database/sqlite/SQLiteException.html) | if the database cannot be opened |

### getWritableDatabase

added in[version 1.1.0](https://developer.android.com/topic/libraries/support-library/revisions)  

```
SupportSQLiteDatabase getWritableDatabase ()
```

Create and/or open a database that will be used for reading and writing. The first time this is called, the database will be opened and[onCreate(SupportSQLiteDatabase)](https://developer.android.com/reference/android/arch/persistence/db/SupportSQLiteOpenHelper.Callback#onCreate(android.arch.persistence.db.SupportSQLiteDatabase)),[onUpgrade(SupportSQLiteDatabase, int, int)](https://developer.android.com/reference/android/arch/persistence/db/SupportSQLiteOpenHelper.Callback#onUpgrade(android.arch.persistence.db.SupportSQLiteDatabase, int, int))and/or[onOpen(SupportSQLiteDatabase)](https://developer.android.com/reference/android/arch/persistence/db/SupportSQLiteOpenHelper.Callback#onOpen(android.arch.persistence.db.SupportSQLiteDatabase))will be called.

Once opened successfully, the database is cached, so you can call this method every time you need to write to the database. (Make sure to call[close()](https://developer.android.com/reference/android/arch/persistence/db/SupportSQLiteOpenHelper#close())when you no longer need the database.) Errors such as bad permissions or a full disk may cause this method to fail, but future attempts may succeed if the problem is fixed.

Database upgrade may take a long time, you should not call this method from the application main thread, including from[ContentProvider.onCreate()](https://developer.android.com/reference/android/content/ContentProvider.html#onCreate()).

<br />

|                                                                                                                                          Returns                                                                                                                                           ||
|--------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| [SupportSQLiteDatabase](https://developer.android.com/reference/android/arch/persistence/db/SupportSQLiteDatabase) | a read/write database object valid until[close()](https://developer.android.com/reference/android/arch/persistence/db/SupportSQLiteOpenHelper#close())is called <br /> |

|                                                                        Throws                                                                         ||
|---------------------------------------------------------------------------------------------------------|----------------------------------------------|
| [SQLiteException](https://developer.android.com/reference/android/database/sqlite/SQLiteException.html) | if the database cannot be opened for writing |

### setWriteAheadLoggingEnabled

added in[version 1.1.0](https://developer.android.com/topic/libraries/support-library/revisions)  

```
void setWriteAheadLoggingEnabled (boolean enabled)
```

Enables or disables the use of write-ahead logging for the database. Write-ahead logging cannot be used with read-only databases so the value of this flag is ignored if the database is opened read-only.

<br />

|                                                 Parameters                                                  ||
|-----------|--------------------------------------------------------------------------------------------------|
| `enabled` | `boolean`: True if write-ahead logging should be enabled, false if it should be disabled. <br /> |

**See also:**

- [enableWriteAheadLogging()](https://developer.android.com/reference/android/arch/persistence/db/SupportSQLiteDatabase#enableWriteAheadLogging())  
-

  ## Interfaces

  - [SupportSQLiteDatabase](https://developer.android.com/reference/android/arch/persistence/db/SupportSQLiteDatabase)
  - [SupportSQLiteOpenHelper](https://developer.android.com/reference/android/arch/persistence/db/SupportSQLiteOpenHelper)
  - [SupportSQLiteOpenHelper.Factory](https://developer.android.com/reference/android/arch/persistence/db/SupportSQLiteOpenHelper.Factory)
  - [SupportSQLiteProgram](https://developer.android.com/reference/android/arch/persistence/db/SupportSQLiteProgram)
  - [SupportSQLiteQuery](https://developer.android.com/reference/android/arch/persistence/db/SupportSQLiteQuery)
  - [SupportSQLiteStatement](https://developer.android.com/reference/android/arch/persistence/db/SupportSQLiteStatement)
-

  ## Classes

  - [SimpleSQLiteQuery](https://developer.android.com/reference/android/arch/persistence/db/SimpleSQLiteQuery)
  - [SupportSQLiteOpenHelper.Callback](https://developer.android.com/reference/android/arch/persistence/db/SupportSQLiteOpenHelper.Callback)
  - [SupportSQLiteOpenHelper.Configuration](https://developer.android.com/reference/android/arch/persistence/db/SupportSQLiteOpenHelper.Configuration)
  - [SupportSQLiteOpenHelper.Configuration.Builder](https://developer.android.com/reference/android/arch/persistence/db/SupportSQLiteOpenHelper.Configuration.Builder)
  - [SupportSQLiteQueryBuilder](https://developer.android.com/reference/android/arch/persistence/db/SupportSQLiteQueryBuilder)