Bienvenidos sean a este post, hoy hablaremos sobre otra posibilidad que disponemos en Android para almacenar informacion en nuestros dispositivos, las bases de datos son una de las herramientas mas importantes en toda aplicacion informatica, ya sea para almacenar informacion y/o archivos, tambien nos permite crear niveles de seguridad para determinados accesos, en fin todo aquello donde debemos intercambiar informacion y hasta no hace mucho era algo dificil y costoso para implementarlo pero cuando Android comenzo a incorporar la libreria SQLite la cual nos permite implementar bases de datos de tipo SQL sin la necesidad de muchos recursos y de forma muy sencilla, esto nos proveera una herramienta muy practica para almacenar informacion y no muy distinta a las vistas hasta ahora.

Anuncios

SQL es un lenguaje de programacion de base de datos muy utilizado, como veremos mas adelante este lenguaje no es particularmente complicado pero en caso de necesitar o les aparece curiosidad les recomiendo ver la seccion de MySQL en este blog donde comento sobre los conocimientos basicos para instalar, implementar y operar una base de datos, como crear sus bases, sus tablas, como cargar informacion y como obtenerla, y todo lo disponible con el comando SELECT. MySQL es una distribucion gratuita para Linux de una base de datos de SQL la cual hoy es dueña Oracle de las mas potentes que encontraran en el mercado compitiendo directamente contra las grandes bases de datos como MS-SQL, Oracle, IBM-DB/2 y algunas otras mas.

Para poder implementar las bases de datos en Android deberemos implementar la clase abstracta SQLiteOpenHelper, esta nos facilita la creacion automatica de la bases de datos y para crear un heredero de esta clase se debe implementar dos metodos: onCreate() y onUpdate(), y opcionalmente onOpen(), la gran particularidad de utilizar esta clase es que automaticamente se encargara de abrir la base de datos y en caso de no existir crearla e incluso de actualizar la version si deseamos cambiar la estructura de la base de datos, por ultimo esta clase tiene dos metodos: getReadableDatabase() y getWritableDatabase() las cuales se encargan de abrir la base de datos para lectura y el otro para lectura y escritura, la particularidad de estos metodos es que en caso de no existir las bases son creadas por ellos.

Por ultimo hablaremos un poco sobre dos metodos disponibles para poder efectuar un query (consulta) sobre nuestras bases de datos y estos son: query y rawquery. Ambos metodos producen el mismo resultado pero sus sintaxis son muy distintas donde el metodo query va a ser mas compleja que la de rawquery pero query es el metodo por defecto de la documentacion oficial y el unico que se puede implementar en otras clases como por ejemplo ContentProvider, comparemos sus sintaxis para ello primero veamos a query():

Anuncios
Cursor SQLiteDatabase.query (
	String tabla,		// Tabla a consultar (FROM)
	String[] columns,	// Columnas a devolver (SELECT)
	String selection,	// Consulta (WHERE)
	String[] selectionArgs	// Reemplaza al "?" de la consulta
	String groupBy,		// Agrupado por (GROUPBY)
	String having,		// Condicion para agrupacion
	String orderBy,		// Ordenado por
	String limit)		// Cantidad maxima de registros

Pasemos a ver como es la sintaxis de rawQuery():

Cursor SQLiteDatabase.rawQuery (
	String sql,		// Comando SQL
	String[] selectionArgs)	// Reemplaza "?" de la consulta

Como pueden ver las consultas son completamente distintas, en el caso de query() para los que esten familizariados con SQL (o alguno de sus derivados) se podran sentir un poco mas incomodos porque debemos descomponer al query de toda la vida en distintos parametros y no en el orden que solemos hacerlo pero lo bueno es que tendremos todas las opciones disponibles no solamente para conectarnos a las tablas sino tambien para limitar las busquedas, si pasamos a rawQuery() veremos de forma mucho mas simple y para el que esta mas habituado a las busquedas de SQL se sentiran mas comodos porque en la variable sql deberemos usar nuestra consulta como por ejemplo:

select * from tabla.traviesa order by id desc limit 100

En este caso el query traeria todos los campos de la tabla (tabla.traviesa) donde lo ordenariamos por la columna id (si existiera) y limitariamos la consulta a 100 registros, por ahora no se preocupen porque en los proximos dias iremos implementando algunos ejemplos donde veremos todos casos y evaluaremos cual de los dos metodos nos resulte mas practicos.

Anuncios

En resumen, hoy hemos hablado sobre las bases de datos en Android, hemos hablado sobre su utilidad, como implementarlo, dos metodos disponibles para poder trabajar con nuestros queries (consultas), espero les haya sido util sigueme en Twitter o Facebook para recibir una notificacion cada vez que subo un nuevo post en este blog, nos vemos en el proximo post.

Tambien podes donar

Es para mantenimiento del sitio, gracias!

$1.00