Entidades y DAOs
Defina tablas y objetos de acceso a datos
Entidades y DAOs es una lección gratuita de Android Academy en CoddyKit. Esta es la lección 1 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de Android Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Android Academy incluye 4 lecciones en total.
¿Qué es Room?
Room es una biblioteca de persistencia que proporciona una capa de abstracción sobre SQLite. Permite trabajar con las filas de la base de datos como objetos de Kotlin, con consultas verificadas en tiempo de compilación.
Los tres componentes básicos de Room
- Entity — una tabla, representada como una clase de datos.
- DAO — Data Access Object, define las consultas.
- Database — conecta las entidades y los DAO (en la siguiente lección).
Definir una Entity
Anote una clase de datos con @Entity. Cada propiedad se convierte en una columna.
import androidx.room.Entity
import androidx.room.PrimaryKey
@Entity(tableName = "users")
data class User(
@PrimaryKey val id: Int,
val name: String,
val email: String
)Claves primarias
Cada entidad necesita un @PrimaryKey. Para permitir que Room genere los identificadores automáticamente, use autoGenerate.
@Entity
data class Note(
@PrimaryKey(autoGenerate = true)
val id: Int = 0,
val text: String
)Personalizar las columnas
Use @ColumnInfo para cambiar el nombre de una columna o establecer su afinidad de tipo.
import androidx.room.ColumnInfo
@Entity
data class User(
@PrimaryKey val id: Int,
@ColumnInfo(name = "full_name")
val name: String
)¿Qué es un DAO?
Un DAO es una interfaz anotada con @Dao. Declara los métodos que usa la aplicación para leer y escribir datos. Room genera la implementación por usted.
Insertar, actualizar y eliminar
Room proporciona anotaciones prácticas para las operaciones básicas.
@Dao
interface UserDao {
@Insert
suspend fun insert(user: User)
@Update
suspend fun update(user: User)
@Delete
suspend fun delete(user: User)
}Estrategias de conflicto
Al insertar una fila que ya existe, elija una estrategia con onConflict.
@Insert(onConflict = OnConflictStrategy.REPLACE)
suspend fun upsert(user: User)Consultas personalizadas con @Query
La anotación @Query permite escribir SQL. Room lo verifica en tiempo de compilación comparándolo con el esquema.
@Query("SELECT * FROM users WHERE id = :id")
suspend fun getById(id: Int): User?¿Por qué usar funciones suspend?
La E/S de la base de datos no debe ejecutarse en el hilo principal. Marcar los métodos del DAO como suspend permite que Room los ejecute fuera del hilo principal cuando se llaman desde una coroutine, lo que evita que la interfaz se bloquee.
Seguridad en tiempo de compilación
Una ventaja importante de Room: si escribe incorrectamente el nombre de una columna en un @Query, la compilación falla. Los errores se detectan pronto, en lugar de producirse durante la ejecución.
Comprobación rápida
Compruebe su comprensión de las entidades y los DAO.
Resumen
Ha aprendido lo siguiente:
@Entitydefine una tabla como una clase de datos con un@PrimaryKey.@Daodeclara métodos de consulta, inserción, actualización y eliminación.- El SQL de
@Queryse verifica en tiempo de compilación. - Los métodos del DAO deben ser
suspendpara realizar la E/S fuera del hilo principal.
Preguntas frecuentes
¿La lección «Entidades y DAOs» es gratis?
Sí — el texto completo de «Entidades y DAOs» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de Android Academy, actualiza a CoddyKit PRO. El curso de Android Academy incluye 4 lecciones en total.
¿Qué aprenderé en «Entidades y DAOs»?
Defina tablas y objetos de acceso a datos Practicas Android Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.
¿Necesito experiencia previa para empezar Android Academy?
No se requiere experiencia previa. Android Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 1 de 4.
¿Cuánto tiempo toma la lección «Entidades y DAOs»?
La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.
¿Puedo escribir y ejecutar código en esta lección de Android Academy?
Sí. Cada lección de Android Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.