Introdução — Room Database Android
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.