Introdução — Room Database Android

Gabriel Prado
iFood Tech
Published in
2 min readDec 5, 2018

Neste post, falarei um pouco sobre Room, uma biblioteca de banco de dados integrante do conjunto “Android JetPack”, que foi apresentado no Google IO 2017/2018.

Inicialmente, utilizamos o Room na versão alpha para persistência e compartilhamento de informações entre as telas (atividades e fragmentos) da aplicação. Ela auxilia os desenvolvedores criando uma abstração das camadas de banco de dados (SQLite).

Suas camadas são representadas por três componentes:

Entity: são as entidades responsáveis por mapear as tabelas.

Dao (Data Access Object): são as interfaces utilizadas para acessar os dados armazenados no banco.

É possivel criar Querie’s personalizadas para os select’s, insert’s, delete’s e update’s.

Database: é a representação da classe abstrata do Banco de Dados. Ela receberá uma anotação que irá identificar as Entities, os Dao’s e seus Converters. Ela será responsável por fazer o controle do banco de dados.

Configurações de projeto:

Passo 1: Adicionar as dependências no app/build.gradle:

Passo 2: Criar uma classe MyApplication e adicionar ao Manifest:

Application é uma classe base, que é instanciada uma única vez e previamente a qualquer outra classe de sua aplicação. Ela existirá durante todo o ciclo de vida da aplicação.

Recomendações de uso:

  • Quando for necessário realizar algumas tasks antes da criação da primeira activity.
  • Para inicialização global de objetos que serão utilizados por outra activity.
  • Para acesso a objetos imutáveis através de métodos estáticos contidos na classe.

Geralmente não é necessário a criação de uma classe que herda Application. Outra alternativa seria a utilização de Singleton’s.

Para adicionar ao Manifest é necessário inserir o nome da classe. android:name=”.MyApplication” na tag <application>

Não é recomendável executar as query’s na Mainthread. Utilizei essa opção apenas para demonstração. (allowMainThreadQuerys)

Último passo: insert, update, delete e select.

Devido ao uso desta biblioteca, ficou mais simples e objetivo o jeito como nós lidamos com os dados persistidos na aplicação, o que facilitou na hora de consumir as informações e apresentá-las para o usuário.

Recomendações:
1. Dagger2 para injeção de dependência;
2. Stetho para auxiliar na inspeção dos dados contidos no banco;

Quer receber conteúdos exclusivos criados pelos nossos times de tecnologia? Inscreva-se.

--

--