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); }); |
分类:
HTML5
« 上一篇: 自己用node.js 搭建APP服务器,然后用AFNetworking 请求 报如下错误:App TransportSecurity has blocked a cleartext HTTP (http://) resource load since it isinsecure. Temporary exceptions can be configured via your app's Info.
» 下一篇: mongodb 安装后 出现警告:** WARNING: soft rlimits too low. Number of files is 256, should be at least 1000
» 下一篇: mongodb 安装后 出现警告:** WARNING: soft rlimits too low. Number of files is 256, should be at least 1000
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· winform 绘制太阳,地球,月球 运作规律
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
· Manus的开源复刻OpenManus初探
· 写一个简单的SQL生成工具