websql数据库javascript操作库--websqlWrapper

简介: websql数据库javascript操作库--websqlWrapper

最近的HTML5项目中要用到客户端数据持久化,就尝试了一下HTML5客户端数据持久化方案。本来选用的是indexedDB来保存服务器数据至本地,但由于webkit升级后原本用IndexedDB写好的逻辑报错,加之操作IndexedDB比较奇葩,干脆又选用了web sql。

但是web sql 对于前端人员用习惯了javascript再来写sql语句操作数据库总感觉怪怪的。所以自己把sql语句封装成了一个js库,取名为websqlWrapper.

websql浏览器支持情况,pc与移动端都比较良好

介绍

WebsqlWrapper是一个简化websql操作的javascript库,在BSD协议下开源发布。

WebsqlWrapper名称的来历: websql 包装器。

此库的所有操作都是异步的,虽然websql提供同步操作接口,但为了UI考虑,本库暂时只提供异步操作

本库已传至github上。下载地址

https://github.com/willian12345/websqlWrapper

 


如何使用

在html中引用websqlwrapprjs

"websqlwrapper.js"

1、建立数据库

注意:建立数据库是同步操作

var db = WebsqlWrapper({
          name: 'demoDB'
        , displayName:'demoDB1'
        , version:1
    });
或,以传统方式new一个数据库出来
var db = new WebsqlWrapper({
          name: 'demoDB'
        , displayName:'demoDB1'
        , version:1
    });

2、建立一张数据表名为demo

第一个参数是表名,第二个参数即字段对象,键/值形式,值代表字段对应的类型限制

demoReady 为建立数据表成功后的回调

db.define('demo', {id:'INTEGER UNIQUE', message:'TEXT NOT NULL', num: 'FLOAT'}, demoReady);

3、操作数据表

在demoReady回调中,就可进行对表进行操作了

操作数据表,首先得获得一个数据表的实例

var table = db.instance('demo');

保存一条数据, save: 更新或插入

注意:需要传第二个参数key

table.save({id: 1, message: 'helloworld', num: 123456}, 'id');

插入数据, insert: 更新或插入

注意:由于我们设置了id字段为unique所以当程序执行第二遍时控制台会输出错误信息

table.insert({id: 2, message: 'fuckworld', num: 123});
table.insert({id: 3, message: 'hi', num: 123});

更新数据, update

注意:需要传第二个参数key

table.update({id: 2, message: 'fuckworld-updated', num: 123}, 'id');

获取数据, get

table.get('num === 123', function(r){
            console.log('查询数据: ', r);
        });



为了更加的开放 query这个API,也支持直接执行SQL语句

db.query('SELECT * FROM demo', function(r){
            console.log('查询结果: ', r);
        });

批处理操作, batch

注意:在本库中,暂时所有的数据库API都只提供异步操作,所以在处理多条数据操作时此命令特别重要,等所有命令处理完后即可以回调中放心继续其它操作

否则每一条SQL执行完你都得自己写一个回调,那会麻烦死

batch即可等所有SQL执行完后再调用回调。

可以先定义一个数组,数组项为需要操作的数据库命令,来批处理操作,列如:一次性插入,更新,删除,保存等操作

 

// 定义一个命令数组
        var arr = [
              {type: 'save', item: {id: 4, message: 'my name is lilei11', num: 207}, args: 'id'}
            , {type: 'save', item: {id: 5, message: 'my name is hameimei', num: 201}, args: 'id'}
            , {type: 'query', item: 'SELECT * FROM demo'}
            , {type: 'query', item: 'SELECT * FROM demo'}
            , {type: 'query', item: 'SELECT * FROM demo'}
        ];
        // 批处理
        table.batch(arr, function(r){
            console.log('批处理操作成功!');
        });

更多的API,请施主还是看源码吧。很简单

相关文章
|
8月前
|
JavaScript 前端开发 Java
通义灵码 Rules 库合集来了,覆盖Java、TypeScript、Python、Go、JavaScript 等
通义灵码新上的外挂 Project Rules 获得了开发者的一致好评:最小成本适配我的开发风格、相当把团队经验沉淀下来,是个很好功能……
1446 103
|
8月前
|
关系型数据库 分布式数据库 数据库
一库多能:阿里云PolarDB三大引擎、四种输出形态,覆盖企业数据库全场景
PolarDB是阿里云自研的新一代云原生数据库,提供极致弹性、高性能和海量存储。它包含三个版本:PolarDB-M(兼容MySQL)、PolarDB-PG(兼容PostgreSQL及Oracle语法)和PolarDB-X(分布式数据库)。支持公有云、专有云、DBStack及轻量版等多种形态,满足不同场景需求。2021年,PolarDB-PG与PolarDB-X开源,内核与商业版一致,推动国产数据库生态发展,同时兼容主流国产操作系统与芯片,获得权威安全认证。
|
4月前
|
机器学习/深度学习 算法 数据库
基于GoogleNet深度学习网络和GEI步态能量提取的步态识别算法matlab仿真,数据库采用CASIA库
本项目基于GoogleNet深度学习网络与GEI步态能量图提取技术,实现高精度步态识别。采用CASI库训练模型,结合Inception模块多尺度特征提取与GEI图像能量整合,提升识别稳定性与准确率,适用于智能安防、身份验证等领域。
|
8月前
|
JavaScript 前端开发 API
|
7月前
|
资源调度 JavaScript 前端开发
Day.js极简轻易快速2kB的JavaScript库-替代Moment.js
dayjs是一个极简快速2kB的JavaScript库,可以为浏览器处理解析、验证、操作和显示日期和时间,它的设计目标是提供一个简单、快速且功能强大的日期处理工具,同时保持极小的体积(仅 2KB 左右)。
420 24
|
JavaScript 前端开发 Python
用python执行js代码:PyExecJS库
文章讲述了如何使用PyExecJS库在Python环境中执行JavaScript代码,并提供了安装指南和示例代码。
733 1
用python执行js代码:PyExecJS库
|
10月前
|
数据采集 JavaScript Android开发
【02】仿站技术之python技术,看完学会再也不用去购买收费工具了-本次找了小影-感觉页面很好看-本次是爬取vue需要用到Puppeteer库用node.js扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-优雅草卓伊凡
【02】仿站技术之python技术,看完学会再也不用去购买收费工具了-本次找了小影-感觉页面很好看-本次是爬取vue需要用到Puppeteer库用node.js扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-优雅草卓伊凡
463 7
【02】仿站技术之python技术,看完学会再也不用去购买收费工具了-本次找了小影-感觉页面很好看-本次是爬取vue需要用到Puppeteer库用node.js扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-优雅草卓伊凡
|
移动开发 JavaScript 前端开发
一些处理浏览器兼容性问题的JavaScript库
这些库在处理浏览器兼容性问题方面都有着各自的特点和优势,可以根据具体的需求和项目情况选择合适的库来使用,从而提高代码的兼容性和稳定性,为用户提供更好的体验。同时,随着浏览器技术的不断发展,还需要持续关注和学习新的兼容性解决方案。
391 58
|
算法 开发者
Moment.js库是如何处理不同浏览器的时间戳格式差异的?
总的来说,Moment.js 通过一系列的技术手段和策略,有效地处理了不同浏览器的时间戳格式差异,为开发者提供了一个稳定、可靠且易于使用的时间处理工具。
345 57
|
JavaScript 前端开发 搜索推荐
Moment.js、Day.js、Miment,日期时间库怎么选?
【10月更文挑战第29天】如果你需要一个功能强大、插件丰富的日期时间库,并且对性能要求不是特别苛刻,Moment.js是一个不错的选择;如果你追求极致的轻量级和高性能,那么Day.js可能更适合你;而如果你有一些特定的日期时间处理需求,并且希望在性能和功能之间取得平衡,Miment也是可以考虑的。
509 57

热门文章

最新文章