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:
@Entitydefine uma tabela como uma classe de dados com uma@PrimaryKey.@Daodeclara 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
suspendpara 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.