0Pricing
Android Academy · Aula

Entidades e DAOs

Defina tabelas e objetos de acesso a dados.

Entidades e DAOs é uma aula grátis de Android Academy no CoddyKit. Esta é a aula 1 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Android Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Android Academy inclui 4 aulas no total.

O que é o Room?

O Room é uma biblioteca de persistência que fornece uma camada de abstração sobre o SQLite. Ele permite trabalhar com linhas do banco de dados como objetos Kotlin, usando consultas verificadas em tempo de compilação.

Os três blocos de construção do Room

  • Entity — uma tabela, representada como uma classe de dados.
  • DAO — objeto de acesso a dados que define consultas.
  • Database — reúne entidades e DAOs (na próxima lição).

Definindo uma Entity

Anote uma classe de dados com @Entity. Cada propriedade se torna uma coluna.

import androidx.room.Entity
import androidx.room.PrimaryKey

@Entity(tableName = "users")
data class User(
    @PrimaryKey val id: Int,
    val name: String,
    val email: String
)

Chaves primárias

Toda entidade precisa de uma @PrimaryKey. Para permitir que o Room gere os identificadores automaticamente, use autoGenerate.

@Entity
data class Note(
    @PrimaryKey(autoGenerate = true)
    val id: Int = 0,
    val text: String
)

Personalizando colunas

Use @ColumnInfo para renomear uma coluna ou definir sua afinidade de tipo.

import androidx.room.ColumnInfo

@Entity
data class User(
    @PrimaryKey val id: Int,
    @ColumnInfo(name = "full_name")
    val name: String
)

O que é um DAO?

Um DAO é uma interface anotada com @Dao. Ele declara os métodos que o aplicativo usa para ler e gravar dados. O Room gera a implementação para você.

Inserir, atualizar, excluir

O Room fornece anotações de conveniência para as operações básicas.

@Dao
interface UserDao {
    @Insert
    suspend fun insert(user: User)

    @Update
    suspend fun update(user: User)

    @Delete
    suspend fun delete(user: User)
}

Estratégias de conflito

Ao inserir uma linha que já existe, escolha uma estratégia com onConflict.

@Insert(onConflict = OnConflictStrategy.REPLACE)
suspend fun upsert(user: User)

Consultas personalizadas com @Query

A anotação @Query permite escrever SQL. O Room verifica a consulta em tempo de compilação comparando-a com o esquema.

@Query("SELECT * FROM users WHERE id = :id")
suspend fun getById(id: Int): User?

Por que usar funções suspend?

A entrada e saída do banco de dados não deve ser executada na thread principal. Marcar os métodos do DAO como suspend permite que o Room os execute fora da thread principal quando forem chamados de uma corrotina, evitando travamentos na interface.

Segurança em tempo de compilação

Uma grande vantagem do Room: se você digitar incorretamente o nome de uma coluna em uma @Query, a compilação falhará. Você detecta os erros antecipadamente, em vez de descobri-los durante a execução.

Verificação rápida

Teste sua compreensão sobre entidades e DAOs.

Recapitulação

Você aprendeu:

  • @Entity define uma tabela como uma classe de dados com uma @PrimaryKey.
  • @Dao declara métodos de consulta, inserção, atualização e exclusão.
  • O SQL de @Query é verificado em tempo de compilação.
  • Os métodos do DAO devem ser suspend para executar a entrada e saída fora da thread principal.

Perguntas Frequentes

A aula “Entidades e DAOs” é grátis?

Sim — o texto completo de “Entidades e DAOs” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Android Academy, atualize para CoddyKit PRO. O curso de Android Academy inclui 4 aulas no total.

O que vou aprender em “Entidades e DAOs”?

Defina tabelas e objetos de acesso a dados. Você pratica Android Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.

Preciso ter experiência prévia para começar Android Academy?

Nenhuma experiência prévia é necessária. Android Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 1 de 4.

Quanto tempo leva a aula “Entidades e DAOs”?

A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.

Posso escrever e executar código nesta aula de Android Academy?

Sim. Cada aula de Android Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.

Todas as aulas deste curso

  1. Entidades e DAOs
  2. A classe de banco de dados Room
  3. Consultas e relacionamentos
  4. Observando dados com Flow
← Voltar para Android Academy