He realizado una clase para manejar más fácilmente el plugin Cordova-sqlite-storage, puedes encontrarla en Espino316 dbhelper-cordova-sqlite-storage.
El propósito es hacer más sencillo el manejo de este ya de por si excelente plugin, ya que me pareció demasiado verboso y me gustan las cosas simples, elegantes y mantenibles.
**Importante** Instalar primero Cordova-sqlite-storage.
El helper se utiliza de la siguiente manera:
[javascript]
var db = new DbHelper(“mydb”);
// mydb Es el nombre de la db
[/javascript]
[javascript]
db.execScript ( “sqlscripts/setup.sql” );
[/javascript]
En sqlscripts/setup:
[sql]
CREATE TABLE IF NOT EXISTS
schools (
school_id int PRIMARY KEY ASC,
school_name text
);
[/sql]
[javascript]
// La variable que contiene el sql
var sql = “SELECT * FROM schools WHERE school_id = :schoolId”;
// La variable que contiene los parámetros (si existen)
var params = {};
params[‘schoolId’] = 9901;
// La variable que contiene la función
// Espera un arreglo de objetos
// esto es lo que imprimiría
// [{ school_id: “9001”, “school_name”:”PABLO LIVAS”},{ school_id: “9002”, “school_name”:”ADOLFO PRIETO”}]
var fn = function ( result ) {
console.log( result );
};
// Mandamos llamar la función
db.query(
sql,
params,
fn
);
// También podemos establecer los parámetros de forma simple con ?
// La variable que contiene el sql
var sql = “SELECT * FROM schools WHERE school_id = ?”;
// La variable que contiene los parámetros (si existen)
var params = [9901];
// La variable que contiene la función
// Espera un arreglo de objetos
// esto es lo que imprimiría
// [{ school_id: “9001”, “school_name”:”PABLO LIVAS”},{ school_id: “9002”, “school_name”:”ADOLFO PRIETO”}]
var fn = function ( result ) {
console.log( result );
};
// Mandamos llamar la función
db.query(
sql,
params,
fn
);
// Para efectuar una consulta sin parámetros
db.query(
sql,
null,
fn
);
[/javascript]
[javascript]
// El nombre de la tabla
var tableName = “schools”;
// El arreglo asociativo u objeto de datos
var tableData = {
“shool_id”: 9003,
“school_name”: “MOISEIS SAENS”;
};
// Un arreglo para establecer cuales son los campos llave
var keyFields = [“school_id”];
// Llamamos a upsert, en caso de que exista el registro (por llave) lo actualizará
// caso contrario, lo insertará
db.upsert(tableName, tableData, keyFields);
[/javascript]
Es igual que la función anterior, solo que tableData puede ser un arreglo de objetos:
[javascript]
// El nombre de la tabla
var tableName = “schools”;
// El de objetos que representan los datos
var tableData = [
{
“shool_id”: 9003,
“school_name”: “MOISEIS SAENS”;
},
{
“shool_id”: 9004,
“school_name”: “JERONIMO SILLER”;
}
];
// Un arreglo para establecer cuales son los campos llave
var keyFields = [“school_id”];
// Llamamos a upsert, en caso de que exista el registro (por llave) lo actualizará
// caso contrario, lo insertará
db.bulkUpsert(tableName, tableData, keyFields);
[/javascript]
Cómo puedes ver, es bastante sencillo su uso y bastante útil, claro, conciso y elegante.
admin
March 30, 2016
cordova
No Comment