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
- La importancia de mantener un ritmo de estudio durante las navidades.
- Cómo Multiplicar Matrices en Java: Guía Completa con Ejemplo Práctico
- Triunfos y logros de nuestra Academia SanRoque
- Herramientas Imprescindibles para Realizar Ingeniería Inversa en Java
- ¿A qué nivel de conversación en inglés estás dispuesto a llegar con Academia SanRoque?
- Cómo Resolver una Ecuación de Segundo Grado con GNU Octave
- Cuando vienes a la Academia SaRoque justo antes del examen final.
- 25N Día Internacional para la Eliminación de la Violencia contra la Mujer
- Cuando el profesor nos da la última oportunidad.
- Trucos de Don Alejandro: El teorema de Pick. Resolución de áreas mediante puntos.
- Tú lo que tienes que hacer.
- Guía Práctica para Implementar un ERP con Odoo en una Empresa Manufacturera
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