Sigueme en Facebook Sigueme en Twitter Sigueme en Instagram Sigueme en Youtube
JC Mouse Bolivia
Index / Android / Introducción a SQLite

Introducción a SQLite

Autor jc mouse martes, agosto 6, 2013

sqlite

Android hace uso de la base de datos SQLite para el manejo de registros en las aplicaciones. Según Santa Wikipedia define SQLite como:

«SQLite es un sistema de gestión de bases de datos relacional compatible con ACID, contenida en una relativamente pequeña biblioteca escrita en C. «

«SQLite usa un sistema de tipos inusual. En lugar de asignar un tipo a una columna como en la mayor parte de los sistemas de bases de datos SQL, los tipos se asignan a los valores individuales. Por ejemplo, se puede insertar un string en una columna de tipo entero (a pesar de que SQLite tratará en primera instancia de convertir la cadena en un entero). «

Para hacer uso de una base de datos SQLite, android dispone de la clase SQLiteOpenHelper  que tiene los métodos para la creación de base de datos y el control de versiones. Veremos como hacer uso de esa clase en un sencillo proyecto a continuación.

Utilizaremos Eclipse Indigo con Android instalado y configurado.

Proyecto de manejo a base de datos SQLite.

1.Crea un nuevo Application Android Project con la siguiente configuración:

Application Name: SQLite Example

Project Name: SQLiteExample

Package Name: com.tutorial.sqliteexample

Activity: Blank Activity

Activity Name: MainActivity.java

Layout Name: activity_main.xml

2. Crearemos dos clases en el paquete com.tutorial.sqliteexample, estas se llamaran, «SQLiteHelper.java» y «SQLite.java»

sqlite class

3. La clase SQLiteHelper, se extiende de SQLiteOpenHelper y se sobreescriben los métodos onCreate() y onUpgrade().

El método oncreate() sirve para crear la base de datos, android verifica si la aplicación no tiene base de datos, entonces ejecuta este método.

El método onUpgrade(), es utilizada para el manejo y control de versiones, cuando se distribuye una nueva versión de un programa y se desea modificar la base de datos, ya sea con más o menos tablas y campos, quiere decir que  se desea pasar a una «nueva versión» de base de datos, esto se maneja internamente con una variable de tipo entero «versión» y es aquí donde el método onUpgrade() se ejecuta y verifica si una nueva versión de nuestra aplicación hace uso de una nueva «versión» de base de datos o de lo contrario sigue usando la misma.

Clase SQLiteHelper

package com.tutorial.sqliteexample;

import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.util.Log;

public class SQLiteHelper extends SQLiteOpenHelper {

 //nombre de la base de datos
 private static final String __database__ = "dbTest";
 //versión de la base de datos
 private static final int __version__ = 1;
 //Instrucción SQL para crear las tablas
 private String sql = "CREATE TABLE mi_tabla ( id INTEGER, nombre TEXT, apellido TEXT )";

 /**
 * Constructor de clase
 * */
 public SQLiteHelper(Context context) {  
  super( context, __database__, null, __version__ );  
 }

 @Override
 public void onCreate(SQLiteDatabase db) {  
   db.execSQL( sql );
   Log.i("SQLite", "Se crea la base de datos " + __database__ + " version " + __version__ );
 }

 @Override
 public void onUpgrade( SQLiteDatabase db,  int oldVersion, int newVersion ) {
  Log.i("SQLite", "Control de versiones: Old Version=" + oldVersion + " New Version= " + newVersion  );
  if ( newVersion > oldVersion )
  {
   //elimina tabla
   db.execSQL( "DROP TABLE IF EXISTS mi_tabla" );
   //y luego creamos la nueva tabla
   db.execSQL( sql );   
   Log.i("SQLite", "Se actualiza versión de la base de datos, New version= " + newVersion  );
  }
 }

}

Nuestra base de datos se llama dbTest y consta de una sola tabla con dos campos, es más que suficiente para lo que deseamos hacer en esta oportunidad.

Vemos que se hace uso de una variable «__version__» de tipo entero, esta indica la versión de nuestra base de datos, más adelante veremos como pasar a una segunda versión modificando esta variable.

Nuestro método onUpgrade(), cuando android detecte que existe una nueva versión de base de datos, eliminará la tabla antigua y creara una nueva, esto claro es un ejemplo simple, en la práctica, dependiendo del tamaño de la base de datos y de los cambios que deseemos hacer este método será mucho más trabajado.

4. Una vez que tenemos nuestra clase SQLiteHepler, debemos crear otra clase más que haga uso de la anterior, esta clase es SQLite.java

SQLite.java

package com.tutorial.sqliteexample;

import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.util.Log;

public class SQLite {

 SQLiteHelper sqliteHelper;
 SQLiteDatabase db;

 /** Constructor de clase */
 public SQLite(Context context)
 {
  sqliteHelper = new SQLiteHelper( context );
 }

 /** Abre conexion a base de datos */
 public void abrir(){
  Log.i("SQLite", "Se abre conexion a la base de datos " + sqliteHelper.getDatabaseName() );
  db = sqliteHelper.getReadableDatabase(); // solo lectura 
 }

 /** Cierra conexion a la base de datos */
 public void cerrar()
 {
  Log.i("SQLite", "Se cierra conexion a la base de datos " + sqliteHelper.getDatabaseName() );
  sqliteHelper.close();  
 }
}

La clase SQLite.java cuenta con 2 métodos para abrir y cerrar conexiones a la base de datos, por el momento es todo lo que necesitamos. A medida que vayamos necesitando mas funcionalidad en la aplicación ya sea para insertar, eliminar o actualizar registros, estos deberán ser colocados en esta clase.

Tanto en la clase SQLiteHelper y SQLite, hacemos uso de Log.i(), estos logs nos permiten mostrar información, errores, warnings, etc en el LogCat de Eclipse y así poder depurar nuestra aplicación. en este caso Log.i nos permite mostrar información.

5. Para terminar abrimos nuestra clase MainActivity.java e implementamos la clase SQLite.java de la siguiente manera.

package com.tutorial.sqliteexample;

import android.os.Bundle;
import android.app.Activity;
import android.util.Log;
import android.view.Menu;

public class MainActivity extends Activity {

 @Override
 protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.activity_main);

  //
  Log.i("SQLite", "Inicio de aplicación SQLite" );
  SQLite sqlite = new SQLite( this );  
  sqlite.abrir();
  sqlite.cerrar();  
  Log.i("SQLite", "Aplicación SQLite creada correctamente 🙂 " );
  //
 }

 @Override
 public boolean onCreateOptionsMenu(Menu menu) {
  // Inflate the menu; this adds items to the action bar if it is present.
  getMenuInflater().inflate(R.menu.main, menu);
  return true;
 }

}

En esta proyecto, no hacemos uso de interfaces XML porque  nuestra aplicación lo único que hará es crear la base de datos, conectarse y desconectarse, en la interfaz del teléfono no veremos nada. Nuestros ojos deberán estar atentos al LogCat.

Ejecutamos por PRIMERA vez y tenemos:

logcat android

Como es la primera vez que ejecutamos nuestra aplicación, la base de datos NO EXISTE, por tanto se ejecuta el método onCreate() para crear la base de datos.

Ejecutamos por SEGUNDA VEZ, pero antes, debemos cambiar a «2» la variable __version__ de la clase SQLiteHelper.

private static final int __version__ = 2;

En el LogCat tendremos:

logcat eclipse

Observamos como esta vez, la base de datos ya existe, por tanto no ejecuta el método onCreate(), pero como modificamos la versión de la base de datos a 2, se ejecuta el método onUpgrade(), actualiza a la nueva versión y cierra la conexión.

Eso es todo para comenzar con base de datos de android, más adelante iremos implementados los diferentes métodos de gestión como ser INSERT, DELETE, UPDATE Y SELECT.

Proyecto utilizado en este tutorial AQUI

Tags

Si te ha gustado podrías compartirlo o dejar un comentario. ¡Muchas gracias!
Autor: JC Mouse

Yo soy yo :) JC Mouse, Soy orgullosamente boliviano soy fundador y CEO de la web jc-Mouse.net uno de las pocas web en emprendimiento y tecnología en Bolivia.

Toda la información que encuentres en este sitio es y sera completamente gratis siempre, puedes copiar, descargar y re-publicar si así lo deseas en otros blogs o sitios web, solo te pido a cambio que dejes una referencia a esta web. Esto nos ayuda a crecer y seguir aportando. Bye

Enjoy! :)

También Te Podría Interesar

Cambiar plataforma JDK en Netbeans

Cambiar plataforma JDK en Netbeans

Es recomendable tener actualizado la Maquina Virtual Java de nuestro equipo para poder disfrutar de las mejoras que trae...

Guardar y Leer imagenes en PostgresSQL

Guardar y Leer imagenes en PostgresSQL

En este tutorial veremos una forma para registrar archivos JPG en una base de datos PostgreSQL y recuperarlos para utili...

Introducción a Fragment

Introducción a Fragment

Un Fragment representa un comportamiento o una parte de la interfaz de usuario en una Activity. Puedes combinar múltiple...

El Viaje Astral del Tata Quispe

El Viaje Astral del Tata Quispe

El Viaje Astral del Tata Quispe, así titula un nuevo juego boliviano desarrollado por la empresa VReality el cual esta i...

Rompecabezas con forma irregular

Rompecabezas con forma irregular

En este post vemos una manera de como crear un juego de rompecabezas en java sin el uso de java2d, ademas, las piezas de...

Efecto de explosión al abrir un JPanel

Efecto de explosión al abrir un JPanel

En este tutorial crearemos un interesante efecto de explosión al momento de abrir un JPanel, este efecto puede extenders...

1 comentario en “Introducción a SQLite”

  1. adria dice:

    buena introduccion, pero a todo esto deverias correr a aprender usar los ContentProviders son los que gestionan de forma perfecta la base de datos y va mejor de lo que puedes imaginar.

    a todo esto sigo todos tus post sobre java!! 🙂

Los comentarios estan cerrados

Comparte lo que sabes

Categorias

Últimas entradas

Si trabajas con redes sociales (RRSS) a continuación te muestro tres herramintas gratuitas que te ayudaran a la hora de...

Por lo general se usan transacciones a nivel base de datos y posteriormente se llaman estos a través de procedimientos a...

En este post, aprenderemos como conectar Visual Basic 6 con SQL Server, abrir una tabla, leer su contenido y mostrar est...

Lo que veremos en este post es la configuración del driver para PHP de SQL Server que ha creado Microsoft el cual permit...

Herramientas

Generador de Enlaces a Whatsapp