Helper db.js para el Cordova-sqlite-storage

admin

March 30, 2016

cordova

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:

Inclusión

Declaración

[javascript]
var db = new DbHelper(“mydb”);
// mydb Es el nombre de la db
[/javascript]

Ejecución de un script sql (para crear las tablas, por ejemplo):

[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]

Consulta simple:

[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]

Inserciones y actualizaciones:

Para insertar o actualizar un solo registro utilizamos “upsert”. Si existe, lo actualizará (update), sino lo insertará (insert).

[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]

Inserciones por lotes:

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.

Related Posts

Cordova en tres patadas

admin

March 30, 2016

cordova

Cordova es un tira-código para plataformas móviles (Android, iOS, Windows Phone). Lo que hace es crear los proyectos y el código necesario para levantar un web browser en la aplicación móvil y así poder hacer pasar una aplicación web por una aplicación móvil nativa. Instala las librerías necesarias para comunicarse con el S.O. móvil mediante […]

Read More