# Interface LLDatabaseType

All Superinterfaces:
  `AutoCloseable, Closeable`

All Known Implementing Classes:
  `LLDatabaseSQLite`

public interface LLDatabaseType extends Closeable
A database.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `long`
  `dataSizeApproximate()`
  `Optional<String>`
  `get(LLKeyName key)`
  Get the value associated with the given key, if any.
  `Map<LLKeyName, String>`
  `getAll()`
  `boolean`
  `isClosed()`
  `long`
  `keyCountApproximate()`
  `Map<LLKeyName, String>`
  `readUpdateDelete(LLDatabaseRUD rud)`
  Atomically read, update, and delete values in the database.

  ### Methods inherited from interface Closeable

  `close`

- ## Method Details

  - ### dataSizeApproximate

    long dataSizeApproximate() throws IOException
    Returns:
      The approximate size of the database in bytes
    Throws:
      `IOException` - On errors

  - ### keyCountApproximate

    long keyCountApproximate() throws IOException
    Returns:
      The approximate number of keys in the database
    Throws:
      `IOException` - On errors

  - ### isClosed

    boolean isClosed()
    Returns:
      `true` if the store has been closed

  - ### readUpdateDelete

    Map<LLKeyName, String> readUpdateDelete(LLDatabaseRUD rud) throws IOException
    Atomically read, update, and delete values in the database.
    Parameters:
      `rud` - The RUD operation
    Returns:
      The read keys
    Throws:
      `IOException` - On errors

  - ### get

    Optional<String> get(LLKeyName key) throws IOException
    Get the value associated with the given key, if any.
    Parameters:
      `key` - The key
    Returns:
      The value, if any
    Throws:
      `IOException` - On errors

  - ### getAll

    Map<LLKeyName, String> getAll() throws IOException
    Returns:
      The entire database
    Throws:
      `IOException` - On errors