3-4 - programación básica - android
Post on 28-Apr-2015
42 Views
Preview:
TRANSCRIPT
MC. Roberto Domínguez Estrada roberto.dominguez@itesm.mx
Android
Persistencia con SQLite http://www.sqlite.org/docs.html
Estructura de Paquetes Sugerida
Tabla de “Contactos” _id nombre email
1 María González maria@aol.com
2 Pedro López plopez@gmail.com
3 Juan García juan.garcia@hotmail.com
SQLite – Tipo de Datos SQLite JAVA
TEXT String
INTEGER long
REAL double
*La llave primaria siempre debe llamarse “_id” por convenciones de
Android
Constantes public class Constantes {
public static final String COL_ID = “_id";
public static final String COL_NOMBRE = "nombre";
public static final String COL_EMAIL = "email";
public static final int VERSION_BD = 1;
public static final String NOMBRE_BD = "Agenda";
public static final String SQL_CREAR_TABLA_CONTACTOS = "create table contactos (_id integer primary key autoincrement, nombre text not null, email text not null);";
public static final String TABLA_CONTACTOS = "contactos";
public static final String LOG_BD = "ContactosDAOImpl";
}
SQLiteOpenHelper Clase auxiliar que permite la creación de Bases de
Datos y el control de su versión
Métodos a sobre-escribir: onCreate(SQLiteDatabase bd)
onUpgrade(SQLiteDatabase bd, int
versionAnterior, int versionNueva)
onOpen(SQLiteDatabase bd)
AuxiliarBD
public class AuxiliarBD extends SQLiteOpenHelper {
public AuxiliarBD(Context contexto) {
super(contexto, Constantes.NOMBRE_BD,
null, Constantes.VERSION_BD);
}
@Override
public void onCreate(SQLiteDatabase bd) {
try {
bd.execSQL(Constantes.SQL_CREAR_TABLA_CONTACTOS);
} catch (SQLException e) {
e.printStackTrace();
}
}
AuxiliarBD
@Override
public void onUpgrade(SQLiteDatabase bd, int versionAnterior,
int versionNueva) {
bd.execSQL("DROP TABLE IF EXISTS " +
Constantes.TABLA_CONTACTOS);
onCreate(bd);
}
}
ContactosDAO
public interface ContactosDAO {
public ContactosDAO abrir() throws SQLException;
public void cerrar();
public long insertarContacto(String nombre, String email);
public boolean borrarContacto(long id);
public Cursor obtenerContactos();
public Cursor obtenerContacto(long id) throws SQLException;
public boolean actualizarContacto(long id, String nombre, String
email);
}
ContactosDAOImpl
public class ContactosDAOImpl implements ContactosDAO {
private final Context contexto;
private AuxiliarBD auxBD;
private SQLiteDatabase bd;
public ContactosDAOImpl(Context ctx) {
this.contexto = ctx;
auxBD = new AuxiliarBD(contexto);
}
public ContactosDAO abrir() throws SQLException {
bd = auxBD.getWritableDatabase();
return this;
}
public void cerrar() {
auxBD.close();
}
Crear/Abre una BD
para lectura/escritura
ContactosDAOImpl
public long insertarContacto(String nombre, String email) {
ContentValues valoresIniciales = new ContentValues();
valoresIniciales.put(Constantes.COL_NOMBRE, nombre);
valoresIniciales.put(Constantes.COL_EMAIL, email);
return bd.insert(Constantes.TABLA_CONTACTOS, null,
valoresIniciales);
}
public boolean borrarContacto(long id) {
return bd.delete(Constantes.TABLA_CONTACTOS,
Constantes.COL_ID + "=" + id, null) > 0;
}
public Cursor obtenerContactos() {
return bd.query(Constantes.TABLA_CONTACTOS, new String[] {
Constantes.COL_ID, Constantes.COL_NOMBRE, Constantes.COL_EMAIL },
null, null, null, null, null);
}
ContactosDAOImpl
public Cursor obtenerContacto(long id) throws SQLException {
Cursor cursor = bd.query(true, Constantes.TABLA_CONTACTOS,
new String[] { Constantes.COL_ID, Constantes.COL_NOMBRE,
Constantes.COL_EMAIL }, Constantes.COL_ID + "=" + id,
null, null, null, null, null);
if (cursor != null) {
cursor.moveToFirst();
}
return cursor;
}
public boolean actualizarContacto(long id, String nombre, String
email) {
ContentValues nuevosValores = new ContentValues();
nuevosValores.put(Constantes.COL_NOMBRE, nombre);
nuevosValores.put(Constantes.COL_EMAIL, email);
return bd.update(Constantes.TABLA_CONTACTOS, nuevosValores,
Constantes.COL_ID + "=" + id, null) > 0;
}
}
Ejemplo de Uso
…Dentro de un Activity (contexto)…
. . .
ContactosDAO contactosDAO = new ContactosDAOImpl(this);
contactosDAO.abrir();
long idContacto = contactosDAO.insertarContacto(“Juan
Garcia”, “juan.garcia@hotmail.com”);
contactosDAO.cerrar();
. . .
Implemente una Agenda de Contactos
Indicaciones Crear una Base de Datos para almacenar contactos
en Android
Permitir las operaciones: Nuevo contacto
Consultar lista de contactos
Editar un contacto
Borrar un contacto
Referencia Javadoc:
http://developer.android.com/reference/android/database/sqlite/package-summary.html
top related