Helper db.js para el Cordova-sqlite-storage

admin

March 30, 2016

cordova

No Comment

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

var db = new DbHelper("mydb");
// mydb Es el nombre de la db

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

db.execScript ( "sqlscripts/setup.sql" );

En sqlscripts/setup:

CREATE TABLE IF NOT EXISTS
    schools (
        school_id int PRIMARY KEY ASC,
        school_name text
    );

Consulta simple:

// 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
);

Inserciones y actualizaciones:

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

// 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);

Inserciones por lotes:

Es igual que la función anterior, solo que tableData puede ser un arreglo de objetos:

// 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);

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

No Comment

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

Leave a Reply

Your email address will not be published. Required fields are marked *

Busca en el blog aqui

Herramientas Útiles

Suscribete al blog

Recibe en tu correo las últimas publicaciones

Publicidad

Sígueme en Twitter