Рубрики
Без рубрики

База данных комнат. ДОАс

Вступление Эта серия будет посвящена основам базы данных SQLite. I… С тегами java, android, новички, тристан.

  • Эта серия будет посвящена основам базы данных SQLite. Я буду следовать официальному руководству Google, ЗДЕСЬ но я буду работать в том порядке, который имеет для меня больше смысла.

Версия на Youtube

здесь

Что такое ДАО?

  • Отличный вопрос! Когда мы используем библиотеку персистентности Room для хранения данных нашего приложения, мы используем объекты доступа к данным (DAO) для взаимодействия с данными.

  • Каждый DAO будет включать методы, которые предлагают абстрактный доступ к базе данных нашего приложения. Во время компиляции Room автоматически сгенерирует реализацию DAO, которую мы определяем.

  • Используя DAO вместо прямого запроса SQLite, мы создаем гораздо более чистую и тестируемую кодовую базу.

Определение DAO

  • При создании DAO мы должны определить его либо как интерфейс, либо как абстрактный класс. Однако для простых примеров, подобных тем, которые мы используем, рекомендуется использовать интерфейс.
@Dao
public interface WordDAO {

    @Insert
    void insert(Word word);

    @Query("DELETE FROM word_table")
    void deleteAll();

    @Query("SELECT * FROM word_table")
    List getAllWords();
}

@Dao

  • Чтобы создать DAO, мы должны аннотировать наш интерфейс с помощью @Dao . Это то, что сообщает библиотеке the Room, что этот класс представляет объект доступа к данным .

  • Когда мы создаем DAO, существует два типа методов, которые используются для определения операций с базой данных.

1) Удобные методы: Это основные операции, которые были определены для нас как аннотации. @Вставить , @Обновление , @Удалить .

2) Методы запроса: Методы, помеченные @Query и позвольте нам написать ваши собственные SQL-запросы для взаимодействия с базой данных.

@Вставить

  • Это помечает метод в @Dao аннотированном классе как метод вставки. Когда Room реализует этот метод, он вставит свои параметры в базу данных. Все параметры метода insert должны быть либо классом, аннотированным @Entity , либо коллекцией/массивом аннотированных классов. Обратите внимание, что наш параметр представляет собой класс word, который аннотируется с помощью @Entity

@Query(“УДАЛИТЬ ИЗ word_table”)

  • Как указывалось ранее, это метод запроса, и мы используем его для выполнения инструкции SQL. Как вы, вероятно, можете догадаться, это используется для удаления всех строк из нашей таблицы под названием word_table, но давайте немного углубимся в SQL. При попытке удалить что-либо из таблицы в SQL мы используем предложение DELETE и синтаксис обычно выглядит следующим образом:
DELETE FROM table_name WHERE condition
  • все предложения SQL написаны в верхнем регистре

  • Теперь в нашем запросе мы не указали условие, так что это означает, что наш оператор sql удалит все строки внутри вашей word_table.

@Query(“ВЫБРАТЬ * ИЗ word_table”)

  • Здесь мы используем предложение SELECT в сочетании с предложением FROM , и оно используется для определения того, в какой таблице мы хотим выполнить поиск. Символ * указывает на все столбцы и строки. В вольном переводе на человеческую речь это заявление гласит:

Покажите мне все столбцы и все строки в word_table

  • Последнее, на что я хочу обратить внимание, – это тип возвращаемого значения для метода getAllWords() . В настоящее время он имеет возвращаемый тип List и использует Generics, чтобы убедиться, что во время выполнения наш список содержит объекты Word. В будущих сообщениях в блоге этот возвращаемый тип будет изменен на Текущие данные.
  • Спасибо, что нашли время в свой рабочий день, чтобы прочитать этот мой пост в блоге. Если у вас есть какие-либо вопросы или сомнения, пожалуйста, прокомментируйте ниже или свяжитесь со мной по адресу Твиттер .

Оригинал: “https://dev.to/theplebdev/room-database-doas-2caf”