Base de Datos en Android - Conocimiento libre

Page 1

import android.content.ContentValues; import android.content.Context; import android.database.Cursor; import android.database.SQLException; import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteOpenHelper; import android.database.sqlite.SQLiteStatement; public class BD { private static final String CREAR_TABLA_JUGADOR = "create table JUGADOR (id INTEGER PRIMARY KEY AUTOINCREMENT, Nombre TEXT NOT NULL);"; private static final String CREAR_TABLA_ESTADISTICAS = "create table ESTADISTICAS(id INTEGER PRIMARY KEY AUTOINCREMENT, Nivel TEXT, Tiempo TEXT, Intentos INTEGER);"; private static BaseDeDatos baseDeDatos; private static SQLiteDatabase db; public BD(Context contexto){ baseDeDatos = new BaseDeDatos(contexto); } /** * abrir * Abre y hace editable la BD * @return * @throws SQLException */ public static void abrir() throws SQLException{ db = baseDeDatos.getWritableDatabase(); } /** * cerrar * Cierra la BD */ public static void cerrar(){ baseDeDatos.close(); } /** * setCampo * Inserta un campo en la tabla * @param nombreJugador * @param nivel * @param tiempo * @param intentos */ public static void setCampoEnEstadisticas(String nombreJugador, String nivel, String tiempo, String intentos){ abrir(); ContentValues nuevoRegistro = new ContentValues(); nuevoRegistro.put("Nivel", nivel); nuevoRegistro.put("Tiempo", tiempo); nuevoRegistro.put("Intentos", intentos);


db.insert("ESTADISTICAS", "", nuevoRegistro); cerrar(); } /** * setNombreJugador * Guardamos el nombre del jugador * @param nombre */ public static void setNombreJugador(String nombre){ abrir(); ContentValues nuevoRegistro = new ContentValues(); nuevoRegistro.put("Nombre", nombre); db.insert("JUGADOR", "", nuevoRegistro); cerrar(); } /** * getIdNombreJugador * Recuperamos el id del nombre de jugador * @param nombre * @return */ private static int getIdNombreJugador(String nombre){ abrir(); Cursor cursor = null; cursor = db.rawQuery( "SELECT * FROM JUGADOR" , null); if (cursor != null) { if (cursor.moveToFirst()) { do { if(nombre.equals(cursor.getString(1))){ cerramosElCursor(cursor); cerrar(); return cursor.getInt(0); } } while (cursor.moveToNext()); } } cerramosElCursor(cursor); cerrar(); return -1; } /** * comprobarJugador * Comprobamos si es usuario existe en la tabla * @param nombre * @return */ public static boolean comprobarJugador(String nombre){ abrir(); Cursor cursor = null; cursor = db.rawQuery( "SELECT Nombre FROM JUGADOR" , null); if (cursor != null) { if (cursor.moveToFirst()) { do { if(nombre.equals(cursor.getString(0))){


cerramosElCursor(cursor); cerrar(); return true; } } while (cursor.moveToNext()); } } cerramosElCursor(cursor); cerrar(); return false; } /** * getJugadores * Obtenemos una lista con el nombre de todos los jugadores * @return */ public static String[] getJugadores(){ String jugadores[] = new String[getNumeroFilasJugador()]; int cont = 0; abrir(); Cursor cursor = null; cursor = db.rawQuery( "SELECT Nombre FROM JUGADOR" , null); if (cursor != null) { if (cursor.moveToFirst()) { do { jugadores[cont] = cursor.getString(0); cont++; } while (cursor.moveToNext()); } } cerramosElCursor(cursor); cerrar(); return jugadores; } /** * getNumeroFilasJugador * Obtenemos el numero de filas de la tabla jugador para establecer el tama単o del array * @return */ public static int getNumeroFilasJugador(){ String sql = "SELECT COUNT(*) FROM JUGADOR"; abrir(); SQLiteStatement statement = db.compileStatement(sql); long contador = statement.simpleQueryForLong(); cerrar(); return (int) contador; }


/** * cerramosElCursor * @param cursor */ private static void cerramosElCursor(Cursor cursor){ //comprobamos la version ya que a partir de ICS no hay que cerrar los cursores. if(!isVersionIgualOSuperiorICS()){ if(cursor != null){ cursor.close(); } } } /** * isVersionIgualOSuperiorICS * @return */ private boolean isVersionIgualOSuperiorICS(){ if(Build.VERSION.SDK_INT >= 14){ return true; }else{ return false; } } /** * Clase BaseDeDatos * Esta clase crea la BASE DE DATOS con sus tablas * @author Javier Tejedor * **/ private class BaseDeDatos extends SQLiteOpenHelper { //private final static int VERSION = 2; BaseDeDatos(Context context) { super(context, "Nombre Base de Datos", null, 1); } @Override public void onCreate(SQLiteDatabase db) { try { db.execSQL(CREAR_TABLA_JUGADOR); db.execSQL(CREAR_TABLA_ESTADISTICAS); } catch (SQLException e) { e.printStackTrace(); } } @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { } /** En esta función actualizariamos la BBDD por si queremos meterne tablas o campos nuevo. La variable VERSION, viene de la llamada al “super”. Ahi deberiamos ponerle un 2 **/


/** @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { if(oldVersion < VERSION){ db.execSQL(CREAR_TABLA_JUGADOR); } onCreate(db); } *// } }


Turn static files into dynamic content formats.

Create a flipbook
Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.