cordova-sqlite-plugin常用数据库操作

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

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

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

 2、用标准事务API 来布库

1
2
3
4
5
6
7
8
9
10
11
12
//在一个事务中执行建表插入等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、可以检测或查看数据的事务操作

1
2
3
4
5
6
7
8
9
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 批处理。用来初始化有大量数据的数据库比较实用

1
2
3
4
5
6
7
8
9
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的方法

1
2
3
4
5
6
7
8
9
10
11
12
13
14
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.当然你可以用这种方法返回查询结果

1
2
3
4
5
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);
 });

  

 

   

posted @   wjwdive  阅读(3058)  评论(0编辑  收藏  举报
编辑推荐:
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
· Manus的开源复刻OpenManus初探
· 写一个简单的SQL生成工具
点击右上角即可分享
微信分享提示