# SQLiteConnection

Artifact: [androidx.sqlite:sqlite](https://developer.android.com/jetpack/androidx/releases/sqlite) [View Source](https://cs.android.com/search?q=file:androidx/sqlite/SQLiteConnection.+class:androidx.sqlite.SQLiteConnection) Added in [2.5.0](https://developer.android.com/jetpack/androidx/releases/sqlite#2.5.0)

*** ** * ** ***


```
public interface SQLiteConnection extends AutoCloseable
```

<br />

Known direct subclasses [SupportSQLiteConnection](https://developer.android.com/reference/androidx/sqlite/driver/SupportSQLiteConnection)

|---|---|
| `https://developer.android.com/reference/androidx/sqlite/driver/SupportSQLiteConnection` | A `https://developer.android.com/reference/androidx/sqlite/SQLiteConnection` implemented by `https://developer.android.com/reference/androidx/sqlite/db/SupportSQLiteDatabase` and that uses the Android's SQLite through the `SupportSQLite` APIs. |

*** ** * ** ***

SQLite connection definition.

A connection to a database is a resource that must be released once it is no longer needed via its `https://developer.android.com/reference/androidx/sqlite/SQLiteConnection#close()` function.

See also [Database Connection](https://www.sqlite.org/c3ref/sqlite3.html)

## Summary

| ### Public methods |
|---|---|
| `abstract void` | `https://developer.android.com/reference/androidx/sqlite/SQLiteConnection#close()()` Closes the database connection. |
| `default boolean` | `https://developer.android.com/reference/androidx/sqlite/SQLiteConnection#inTransaction()()` Returns true if the connection has an active transaction, false otherwise. |
| `abstract @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/sqlite/SQLiteStatement` | `https://developer.android.com/reference/androidx/sqlite/SQLiteConnection#prepare(kotlin.String)(@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/java/lang/String.html sql)` Prepares a new SQL statement. |

| ### Extension functions |
|---|---|
| `default final void` | `https://developer.android.com/reference/androidx/sqlite/SQLite.https://developer.android.com/reference/androidx/sqlite/SQLiteConnection#(androidx.sqlite.SQLiteConnection).execSQL(kotlin.String)(@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/sqlite/SQLiteConnection receiver, @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/java/lang/String.html sql)` Executes a single SQL statement that returns no values. |
| `default final void` | `https://developer.android.com/reference/androidx/sqlite/SQLiteAsync.https://developer.android.com/reference/androidx/sqlite/SQLiteConnection#(androidx.sqlite.SQLiteConnection).executeSQL(kotlin.String)( @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/sqlite/SQLiteConnection receiver, @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/java/lang/String.html sql )` Executes a single SQL statement that returns no values. |
| `default final @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/sqlite/SQLiteStatement` | `https://developer.android.com/reference/androidx/sqlite/SQLiteAsync.https://developer.android.com/reference/androidx/sqlite/SQLiteConnection#(androidx.sqlite.SQLiteConnection).prepare(kotlin.String)( @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/sqlite/SQLiteConnection receiver, @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/java/lang/String.html sql )` Prepares a new SQL statement. |

## Public methods

### close

Added in [2.5.0](https://developer.android.com/jetpack/androidx/releases/sqlite#2.5.0)

```
abstract void close()
```

Closes the database connection.

Once a connection is closed it should no longer be used. Calling this function on an already closed database connection is a no-op.

### inTransaction

Added in [2.6.0](https://developer.android.com/jetpack/androidx/releases/sqlite#2.6.0)

```
default boolean inTransaction()
```

Returns true if the connection has an active transaction, false otherwise.

### prepare

Added in [2.5.0](https://developer.android.com/jetpack/androidx/releases/sqlite#2.5.0)

```
abstract @NonNull SQLiteStatement prepare(@NonNull String sql)
```

Prepares a new SQL statement.

See also [Compiling a SQL statement](https://www.sqlite.org/c3ref/prepare.html)

| Parameters |
|---|---|
| `@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/java/lang/String.html sql` | the SQL statement to prepare |

| Returns |
|---|---|
| `@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/sqlite/SQLiteStatement` | the prepared statement. |

## Extension functions

### SQLite.execSQL

Artifact: [androidx.sqlite:sqlite](https://developer.android.com/jetpack/androidx/releases/sqlite) [View Source](https://cs.android.com/search?q=file:androidx/sqlite/SQLite.nonWeb.kt+function:execSQL)

```
default final void SQLite.execSQL(@NonNull SQLiteConnection receiver, @NonNull String sql)
```

Executes a single SQL statement that returns no values.

### SQLiteAsync.executeSQL

Artifact: [androidx.sqlite:sqlite-async](https://developer.android.com/jetpack/androidx/releases/sqlite) [View Source](https://cs.android.com/search?q=file:androidx/sqlite/async/SQLiteAsync.+function:executeSQL)

```
default final void SQLiteAsync.executeSQL(
    @NonNull SQLiteConnection receiver,
    @NonNull String sql
)
```

Executes a single SQL statement that returns no values.

On web targets this function is asynchronous while for non-web it is synchronous.

### SQLiteAsync.prepare

Artifact: [androidx.sqlite:sqlite-async](https://developer.android.com/jetpack/androidx/releases/sqlite) [View Source](https://cs.android.com/search?q=file:androidx/sqlite/async/SQLiteAsync.+function:prepare)

```
default final @NonNull SQLiteStatement SQLiteAsync.prepare(
    @NonNull SQLiteConnection receiver,
    @NonNull String sql
)
```

Prepares a new SQL statement.

On web targets this function is asynchronous while for non-web it is synchronous.