COMPARTE ESTE ARTÍCULO

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


AYUDANOS A CRECER Y A LLEGAR A TODAS LAS PERSONAS QUE NOS NECESITAN.

Contenido restringido

Acceso de usuarios existentes
   
Registro de un nuevo usuario
*Campo necesario

Categories:

Tags:

Comments are closed

Estado de acceso
ESTADO DE ACCESO
TRADUCTORES
COMPARTENOS
error: CONTENIDO PROTEGIDO