ionic项目需要做本地缓存,研究了一番,总结出了常用的数据库操作:

 1、新建数据库,用angularJS+ionic:

//声明一个数据库对象
var db = null;
//事件deviceready就绪后创建数据库
document.addEventListener('deviceready', function() {
db = window.sqlitePlugin.openDatabase({name: 'demo.db', location: 'default'});
});

 2、用标准事务API 来布库

//在一个事务中执行建表插入等sql语句的
db.transaction(function(tx) {
//建表
tx.executeSql('CREATE TABLE IF NOT EXISTS DemoTable (name, score)');
//插入操作
tx.executeSql('INSERT INTO DemoTable VALUES (?,?)', ['Alice', 101]);
tx.executeSql('INSERT INTO DemoTable VALUES (?,?)', ['Betty', 202]);
}, function(error) {//失败回调
console.log('Transaction ERROR: ' + error.message);
}, function() {//成功回调
console.log('Populated database OK');
});

 3、可以检测或查看数据的事务操作

db.transaction(function(tx) {
tx.executeSql('SELECT count(*) AS mycount FROM DemoTable', [], function(tx, rs) {//操作成功的回调函数里面 有 tx 参数和 rs 参数
//可以打印查询成功的信息
console.log('Record count (expected to be 2): ' + rs.rows.item(0).mycount);
}, function(tx, error) {
//打印查询失败的信息
console.log('SELECT error: ' + error.message);
});
});

 4、这比较叼,SQL 批处理。用来初始化有大量数据的数据库比较实用

db.sqlBatch([
'CREATE TABLE IF NOT EXISTS DemoTable (name, score)',
[ 'INSERT INTO DemoTable VALUES (?,?)', ['Alice', 101] ],
[ 'INSERT INTO DemoTable VALUES (?,?)', ['Betty', 202] ],
], function() {
console.log('Populated database OK');
}, function(error) {
console.log('SQL batch ERROR: ' + error.message);
});

  如果对一个表执行多次操作可以用以下方法,用到jquery的方法

var resultJSON = {/*json数据,待插入数据*/};
var ph = '';//空字符,用于拼接
var data = [];//待插入数据容器
//拼接好sql字符串 填装好数据
$each(resultJSON.user, function (index, element) {
data.push(element.obj1);
data.push(element.status = 0);
if (index !== 0) { ph += ','};
ph += '(?,?)';
});
//执行操作
db.sqlBatch([
['INSERT INTO tableName(obj1,status) VALUES ' + ph, data];
]);

  5、要查看数据就在 操作成功的回调函数加一个res参数,打印log.当然你可以用这种方法返回查询结果

 db.executeSql('SELECT count(*) AS mycount FROM DemoTable', [], function(rs) {
console.log('Record count (expected to be 2): ' + rs.rows.item(0).mycount);
}, function(error) {
console.log('SELECT SQL statement ERROR: ' + error.message);
});

  

   

cordova-sqlite-plugin常用数据库操作的更多相关文章

  1. Mysql 常用数据库操作

    一.数据库操作: 1.查看数据库: >SHOW DATABASES; 2.创建数据库: >CREATE DATABASE db_name; //db_name为数据库名 3.使用数据库: ...

  2. C#对SQLite、Access数据库操作的封装,很好用的~

    1.对SQLite的封装: using System; using System.Collections.Generic; using System.Linq; using System.Text; ...

  3. [转]YII2 常用数据库操作

    1.对象操作: //1.简单查询 $admin=Admin::model()->findAll($condition,$params); $admin=Admin::model()->fi ...

  4. 一些常用数据库操作在mysql及sql server中实现方式的差异

    因为本文强调的是不同点,所以先讲述不同点,再讲相同点. 一.不同点 1.创建表时主键id的自增实现方式不一样 mysql数据库的实现方式是auto_increment,示例如下 CREATE TABL ...

  5. YII2常用数据库操作

    //1.简单查询 $admin=Admin::model()->findAll($condition,$params); $admin=Admin::model()->findAll(&q ...

  6. PHP 常用数据库操作

    1.建立与数据库服务器的连接(前提数据库服务器必须打开) 第一个参数:本地地址 第二个参数:数据库账户 第三个参数:数据库密码 第四个参数:数据库名称 $connection = mysqli_con ...

  7. Hive常用数据库操作

    1.创建表的三种姿势 第一种 //员工表 create table if not exists default.emp( empno int, ename string, job string, mg ...

  8. mongoose 常用数据库操作 查询

    条件查询 Model.find(conditions, [fields], [options], [callback]) demo1 try.js var User = require(". ...

  9. mongoose 常用数据库操作 删除

    删除 Model.remove(conditions, [callback]) try.js var User = require("./user.js"); function d ...

随机推荐

  1. express-2 express介绍

    脚手架 大多数项目都需要一定数量的"套路化"代码,所有可以创建一个通用的项目骨架,每次开始新项目时,只需复制这个骨架,或者说是模板. RoR把这个概念向前推进了一步,它提供了一个可 ...

  2. 转 : 用Delphi编写安装程序

    http://www.okbase.net/doc/details/931  还没有亲自验证过,仅收藏 当你完成一个应用软件的开发后,那么你还需要为该软件做一个规范化的安装程序,这是程序设计的最后一步 ...

  3. Android自动化测试 - MonkeyRunner(三) 随手练习测试脚本

    #coding=utf-8 import os import time #import MonkeyRunner three module from com.android.monkeyrunner ...

  4. SqlServer 事务回滚(1)

    SQL事务   一.事务概念     事务是一种机制.是一种操作序列,它包含了一组数据库操作命令,这组命令要么全部执行,要么全部不执行.因此事务是一个不可分割的工作逻辑单元.在数据库系统上执行并发操作 ...

  5. ural 1142. Relations

    1142. Relations Time limit: 1.0 secondMemory limit: 64 MB Background Consider a specific set of comp ...

  6. Visual Studio: Show Solution Platform in Toolbar

    link: http://stackoverflow.com/questions/7516755/solution-configuration-but-not-platform-in-vs2010-t ...

  7. df卡住问题解决

    windows的share文件挂载到linux/mnt/share下,当windows重启,会导致df卡住. 运行           1 umount -l /mnt/share 2 killall ...

  8. Codeforces Round #252 (Div. 2) B. Valera and Fruits

    #include <iostream> #include <vector> #include <algorithm> #include <map> us ...

  9. 读书笔记:javascript高级技巧(一)

    一.安全的类型检测 javascript内置的类型检测机制并非完全可靠,由于浏览器或者作用域等原因,经常会发生错误.大家知道,在任何值调用toString()方法都会返回一个[object Nativ ...

  10. PHP IDE phpstorm 快捷键

    这篇文章主要介绍了PHP IDE phpstorm 常用快捷键,本文分别列出了mac系统和Windows系统下的phpstorm快捷键,需要的朋友可以参考下 一.mac电脑phpstorm快捷键 co ...