CRUD de SQLite en Android Studio
Forma 1 (Java)
public class bd extends SQLiteOpenHelper {
private final String sql= "CREATE TABLE USER(ID INTEGER primary key AUTOINCREMENT,NAME TEXT,APELLIDO TEXT, PHONE TEXT)";
public bd(Context context, String name, [Link] factory, int version) {
super(context, name, factory, version);
}
@Override
public void onCreate(SQLiteDatabase db) {
[Link](sql);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
[Link]("DROP TABLE IF EXISTS USER");
onCreate(db);
}
}
Forma 1 usando Trigger(Kotlin)
class BaseDatos(context:Context,name:String,factory:[Link]?, version:Int):
SQLiteOpenHelper(context,name,factory,version) {
override fun onCreate(db: SQLiteDatabase?) {
db!!.execSQL("CREATE TABLE COMPANY(ID INTEGER PRIMARY KEY AUTOINCREMENT,NAME TEXT NOT
NULL,AGE INT NOT NULL,ADDRESS CHAR(50),SALARY REAL)")
db!!.execSQL("CREATE TABLE AUDIT(EMP_ID INTEGER NOT NULL,ENTRY_DATE TEXT NOT NULL)")
//Trigger
db!!.execSQL("CREATE TRIGGER audit_log AFTER INSERT ON COMPANY BEGIN INSERT INTO
AUDIT(EMP_ID, ENTRY_DATE) VALUES ([Link], datetime('now')); END;")
}
override fun onUpgrade(db: SQLiteDatabase?, oldVersion: Int, newVersion: Int) {
}
}
//Ejecución
CRUD
CRUD crud = new CRUD(this,”bd_Name”,null,num_version);
/*Create*/
SQLiteDatabase db = [Link]();
ContentValues valores = new ContentValues();
[Link]("name", “nombre”);
[Link]("apellido",”apellidoDatos”);
[Link](“NOMBRE_TABLA”, null, valores);
[Link]();
/*Read*/
SQLiteDatabase db = [Link]();
String[] args = new String[] {"usu1"};
Cursor c = [Link](" SELECT * FROM Usuarios WHERE nombre=? ", args);
While([Link]()){
[Link](num de columna)
}
[Link]();
[Link]();
/*Update*/
SQLiteDatabase db = [Link]();
ContentValues values = new ContentValues();
[Link]("nombre",nombre);
int cant = [Link](“NOMBRE_TABLA”, values, "dni="+dni ’(where)’, null);
[Link]();
/*Delete*/
SQLiteDatabase bd = [Link]();
String dni = [Link]().toString();
// aquí borro la base de datos del usuario por el dni
int cant = [Link](“NOMBRE_TABLA”, "dni=" + dni, null);
[Link]();
Forma 2
public class CRUD {
SQLiteDatabase cx;
ArrayList<Contacto> lista = new ArrayList<Contacto>();
Contacto c;
Context ct;
String BdName ="Contactos";
String tabla= "CREATE table if not exists USER(ID INTEGER primary key AUTOINCREMENT,NAME
TEXT,APELLIDO TEXT, PHONE TEXT)";
public CRUD(Context ct) {
[Link] = ct;
cx = [Link](BdName,Context.MODE_PRIVATE,null);
[Link](tabla);
}
public boolean CRUD(Contacto c){
ContentValues contentValues= new ContentValues();
[Link]("NAME",[Link]());
[Link]("APELLIDO",[Link]());
[Link]("PHONE",[Link]());
return ([Link]("USER",null,contentValues))>0;
}
public boolean delete(int id){
return ([Link]("USER","ID="+id,null))>0;
}
public boolean update(Contacto c){
ContentValues contentValues= new ContentValues();
[Link]("NAME",[Link]());
[Link]("APELLIDO",[Link]());
[Link]("PHONE",[Link]());
return ([Link]("USER",contentValues,"ID="+[Link](),null))>0;
}
public Contacto selectC(int id) {
Cursor cursor = [Link]("SELECT * FROM USER",null);
[Link](id);
c= new Contacto([Link](0),
[Link](1),
[Link](2),
[Link](3)
);
return this.c;
}
public ArrayList<Contacto> selectAll(){
[Link]();
Cursor cursor = [Link]("SELECT * FROM USER",null);
if(cursor != null && [Link]() >0) {
[Link]();
do{
[Link](new Contacto([Link](0),
[Link](1),
[Link](2),
[Link](3)
));
}while([Link]());
}
return lista;
}
}
TRIGGER
La siguiente es la sintaxis básica de crear un disparador:
CREATE TRIGGER trigger_name [BEFORE|AFTER] event_name
ON table_name
BEGIN
-- Trigger logic goes here....
END
event_name podría ser la operación de la base de datos INSERT, DELETE y UPDATE en la tabla
mencionada table_name
sintaxis para crear un desencadenante en una operación de ACTUALIZACIÓN
CREATE TRIGGER trigger_name [BEFORE|AFTER] UPDATE OF column_name
ON table_name
BEGIN
-- Trigger logic goes here....
END;