Introducción
En este artículo, exploraremos cómo implementar una base de datos SQLite en una aplicación de Android utilizando la clase SQLiteOpenHelper
. Nuestro ejemplo se centrará en la creación de una biblioteca que administra libros, permitiendo al usuario insertar, consultar y actualizar información de los libros almacenados. La estructura de nuestra base de datos es sencilla y eficiente, diseñada para realizar operaciones CRUD básicas.
Estructura de la Base de Datos
La base de datos estará compuesta por una tabla llamada Libros
, que contiene los siguientes campos:
- ISBN: Código único de identificación de cada libro.
- Titulo: Título del libro.
- Autor: Nombre del autor.
- EjemplaresTotales: Número total de ejemplares disponibles.
- EjemplaresActual: Cantidad de ejemplares disponibles actualmente.
- Disponible: Estado de disponibilidad del libro.
Implementación de la Clase DatabaseHelper
La clase DatabaseHelper
extiende SQLiteOpenHelper
y se encarga de gestionar la creación y actualización de la base de datos.
class DatabaseHelper(context: Context) : SQLiteOpenHelper(context, "biblioteca.db", null, 1) {
override fun onCreate(db: SQLiteDatabase) {
db.execSQL(
"CREATE TABLE Libros (ISBN TEXT PRIMARY KEY, Titulo TEXT, Autor TEXT, EjemplaresTotales INTEGER, EjemplaresActual INTEGER, Disponible TEXT)"
)
}
override fun onUpgrade(db: SQLiteDatabase, oldVersion: Int, newVersion: Int) {
db.execSQL("DROP TABLE IF EXISTS Libros")
onCreate(db)
}
}
- onCreate: Define la estructura de la tabla
Libros
al inicializar la base de datos. - onUpgrade: Elimina la tabla existente y la recrea, asegurando que los cambios en la estructura de la base de datos se apliquen correctamente.
Clase Libro
Definimos la clase de datos Libro
que representa la entidad Libro
en la base de datos.
data class Libro(
val isbn: String,
val titulo: String,
val autor: String,
val ejemplaresTotales: Int,
val ejemplaresActual: Int,
val disponible: String
)
Métodos CRUD
Insertar un Libro
El método insertarLibro
permite agregar un nuevo libro a la base de datos. Devuelve true
si la inserción fue exitosa.
fun insertarLibro(libro: Libro): Boolean {
val db = this.writableDatabase
val values = ContentValues()
values.put("ISBN", libro.isbn)
values.put("Titulo", libro.titulo)
values.put("Autor", libro.autor)
values.put("EjemplaresTotales", libro.ejemplaresTotales)
values.put("EjemplaresActual", libro.ejemplaresActual)
values.put("Disponible", libro.disponible)
val result = db.insert("Libros", null, values)
db.close()
return result.toInt() != -1
}
Verificar Existencia de un Libro
Con existeLibro
, verificamos si un libro con un ISBN específico ya existe en la base de datos. Retorna true
si el libro está presente.
fun existeLibro(isbn: String): Boolean {
val db = this.readableDatabase
val cursor = db.rawQuery("SELECT * FROM Libros WHERE ISBN = ?", arrayOf(isbn))
val exists = cursor.moveToFirst()
cursor.close()
db.close()
return exists
}
Consultar un Libro
El método consultarLibro
busca un libro por su ISBN y devuelve un objeto Libro
con la información correspondiente. Si el libro no existe, retorna null
.
fun consultarLibro(isbn: String): Libro? {
val db = this.readableDatabase
val cursor = db.rawQuery("SELECT * FROM Libros WHERE ISBN = ?", arrayOf(isbn))
return if (cursor.moveToFirst()) {
val titulo = cursor.getString(cursor.getColumnIndexOrThrow("Titulo"))
val autor = cursor.getString(cursor.getColumnIndexOrThrow("Autor"))
val ejemplaresTotales = cursor.getInt(cursor.getColumnIndexOrThrow("EjemplaresTotales"))
val ejemplaresActual = cursor.getInt(cursor.getColumnIndexOrThrow("EjemplaresActual"))
val disponible = cursor.getString(cursor.getColumnIndexOrThrow("Disponible"))
cursor.close()
Libro(isbn, titulo, autor, ejemplaresTotales, ejemplaresActual, disponible)
} else {
cursor.close()
null
}
}
Actualizar Ejemplares de un Libro
Finalmente, el método actualizarLibroEjemplares
permite modificar la cantidad de ejemplares actuales y su disponibilidad. Devuelve true
si la actualización fue exitosa.
fun actualizarLibroEjemplares(isbn: String, ejemplaresActual: Int, disponible: String): Boolean {
val db = this.writableDatabase
val values = ContentValues()
values.put("EjemplaresActual", ejemplaresActual)
values.put("Disponible", disponible)
val result = db.update("Libros", values, "ISBN = ?", arrayOf(isbn))
db.close()
return result > 0
}
Conclusión
El código presentado constituye una base sólida para gestionar una biblioteca dentro de una aplicación Android. Los métodos CRUD implementados permiten interactuar con la base de datos de manera eficiente, simplificando la tarea de almacenar y recuperar información de libros en la aplicación.
¿QUÉ TE HA PARECIDO EL ARTÍCULO? Danos tu opinión al final de la página.
Deja tu comentario y ayúdanos a crecer.
¡SÍGUENOS EN TUS REDES FAVORITAS!
AYUDANOS A CRECER Y QUE LLEGUEMOS A TODAS LAS PERSONAS QUE NOS NECESITANA. SÍGUENOS EN TUS REDES.
Entra AQUÍ y elíge donde seguirnos.

NUESTRAS ÚLTIMAS PUBLICACIONES
- 🛠️ Cómo crear un plugin en WordPress desde cero (Guía paso a paso)
- 📶 Cómo Crear un Hotspot WiFi en Windows 10 (Paso a Paso)
- 🕵️♂️ Aprende a usar Wireshark: Filtrar tráfico por IP, URL, MAC y más
- 🧩 Subconsultas, HAVING y Subconsultas Binomiales en MySQL: Guía Completa
- 🔍 Principales Comandos y Subconsultas en MySQL: SUM, AVG, MOD y Más
- 26 de marzo CERRADOS.
- ¡Aprende y Refuerza tus Consultas SQL en la Base de Datos de Alumnos!
- La Academia SanRoque lanza su primer podcast de historia: Un viaje a la España medieval
- OFERTA ESPECIAL PARA EL DÍA DEL PADRE.
- En Memoria de Carolina: Academia SanRoque en Luto
- Cómo crear un CRUD en PHP con MySQL y Bootstrap (usando GET y POST)
- Usando la fuente Roboto en WordPress: declaración en CSS y razones de su implementación externa
ELIGE TU RED FAVORITA Y SÍGUENOS.
AYUDANOS A CRECER Y A LLEGAR A TODAS LAS PERSONAS QUE NOS NECESITAN.

Contenido restringido
Comments are closed