# `Exqlite`
[🔗](https://github.com/elixir-sqlite/exqlite/blob/v0.36.0/lib/exqlite.ex#L1)

SQLite3 driver for Elixir.

# `child_spec`

```elixir
@spec child_spec([Exqlite.Connection.connection_opt()]) :: :supervisor.child_spec()
```

# `close`

```elixir
@spec close(DBConnection.conn(), Exqlite.Query.t(), list()) ::
  :ok | {:error, Exception.t()}
```

# `close!`

```elixir
@spec close!(DBConnection.conn(), Exqlite.Query.t(), list()) :: :ok
```

# `execute`

```elixir
@spec execute(DBConnection.conn(), Exqlite.Query.t(), list(), list()) ::
  {:ok, Exqlite.Result.t()} | {:error, Exqlite.Error.t()}
```

# `execute!`

```elixir
@spec execute!(DBConnection.conn(), Exqlite.Query.t(), list(), list()) ::
  Exqlite.Result.t()
```

# `prepare`

# `prepare!`

```elixir
@spec prepare!(DBConnection.conn(), iodata(), iodata(), list()) :: Exqlite.Query.t()
```

# `prepare_execute`

```elixir
@spec prepare_execute(DBConnection.conn(), iodata(), iodata(), list(), list()) ::
  {:ok, Exqlite.Query.t(), Exqlite.Result.t()} | {:error, Exqlite.Error.t()}
```

# `prepare_execute!`

```elixir
@spec prepare_execute!(DBConnection.conn(), iodata(), iodata(), list(), list()) ::
  {Exqlite.Query.t(), Exqlite.Result.t()}
```

# `query`

```elixir
@spec query(DBConnection.conn(), iodata(), list(), list()) ::
  {:ok, Exqlite.Result.t()} | {:error, Exception.t()}
```

# `query!`

```elixir
@spec query!(DBConnection.conn(), iodata(), list(), list()) :: Exqlite.Result.t()
```

# `rollback`

```elixir
@spec rollback(DBConnection.t(), term()) :: no_return()
```

# `start_link`

```elixir
@spec start_link([Exqlite.Connection.connection_opt()]) ::
  {:ok, pid()} | {:error, Exqlite.Error.t()}
```

See `Exqlite.Connection.connect/1`

# `transaction`

```elixir
@spec transaction(DBConnection.conn(), (DBConnection.t() -&gt; result), list()) ::
  {:ok, result} | {:error, any()}
when result: var
```

---

*Consult [api-reference.md](api-reference.md) for complete listing*
