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. Visual Studio工具栏中无法选择调试设备

    Visual Studio工具栏中无法选择调试设备 在Visual Studio工具栏中,默认显示已经识别的设备.用户可以从中选择对应的设备,进行调试和部署App.但是由于误操作,可能导致该选项丢失. ...

  2. HDU5785 Interesting(Manacher + 延迟标记)

    题目 Source http://acm.hdu.edu.cn/showproblem.php?pid=5785 Description Alice get a string S. She think ...

  3. COGS738 [网络流24题] 数字梯形(最小费用最大流)

    题目这么说: 给定一个由n 行数字组成的数字梯形如下图所示.梯形的第一行有m 个数字.从梯形的顶部的m 个数字开始,在每个数字处可以沿左下或右下方向移动,形成一条从梯形的顶至底的路径.规则1:从梯形的 ...

  4. iOS之09-特有语法

    1.分类 - Category 1> 基本用途 分类:可以给某个类扩充一些方法(不修改原来的代码) 如何在不改变原来类模型的前提下,给类扩充一些方法? 有2种方式: 继承: 分类(Categot ...

  5. BZOJ3514 : Codechef MARCH14 GERALD07加强版

    以边编号为权值 用Link-cut Tree维护最大生成树 对于新加的第i条边(u,v) a[i]表示当a[i]这条边加入后连通块个数会减少 若u==v则a[i]=m 若u与v不连通则连上,a[i]= ...

  6. 只有火狐识别的css

    写在css里写只有火狐可以识别,其他浏览器不行. 就算写在@media only screen and (min-width: 960px) and (max-width: 1200px){ 里面也行 ...

  7. jquery属性过滤选择器

    http://www.jb51.net/article/46279.htm   $("div[id]").addClass("highlight"); //查找 ...

  8. 【BZOJ】2693: jzptab

    http://www.lydsy.com/JudgeOnline/problem.php?id=2693 题意:求$\sum_{i=1}^{n} \sum_{j=1}^{m} lcm(i, j)$, ...

  9. 通过/etc/rc.local实现开机自动拉起服务

    添加服务到/etc/rc.local 如自动拉起apache服务: /etc/rc.local: #!/bin/sh # # This script will be executed *after* ...

  10. C#操作XML文档---基础

    增查改删代码如下 public void CreateXML() { XmlDocument xml = new XmlDocument(); xml.AppendChild(xml.CreateXm ...