博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
web本地存储-WebSQL
阅读量:7236 次
发布时间:2019-06-29

本文共 1750 字,大约阅读时间需要 5 分钟。

Web SQL数据库API实际上未包含在HTML 5规范之中,它是一个独立的规范,它引入了一套使用SQL操作客户端数据库的API。W3C 官方在 2011 年 11 月声明已经不再维护 Web SQL Database 规范。但目前较新的chrome浏览器以及一些webkit核心浏览器支持WebSQL数据库,因此仍然必需要了解的,另外操作WebSQL还需要一定的sql基础。

规范中主要有三个核心方法:
1、openDatabase:请求打开一个现有数据库或创建新数据库对象。
2、transaction:事务方法,允许我们根据情况控制事务提交或回滚。
3、executeSql:执行真实的SQL查询。

示例代码:

1 //打开数据库 2 var db = window.openDatabase("store", "1.0", "store", 2*1024); 3 //开启事务请求 4 db.transaction(function (t){ 5    //成功获取的事务对象作为参数回调。 6    t.executeSql('CREATE TABLE IF NOT EXISTS tb_keyValue (key unique, value)');//创建表若不存在 7    t.executeSql('INSERT INTO tb_keyValue (key, value) VALUES(?, ?)', ['name','test_ok']);//插入数据 8 }, function(e){ 9    //失败10    throw "SQLError:" + e.message;11 });12 //开启一个只读事务13 db.readTransaction(function(t){14    t.executeSql('SELECT value FROM tb_keyValue WHERE key = ?', ['name'], function(t, r){15       //成功回调16       if(r.rows.length > 0){17          alert(r.rows.item(0));//'test_ok'18       }19    });20 }, function(e){});

openDatabase(param1,param2,param3,param4,param5)参数说明:

当指定的数据库名(param1)存在时,只有版本号(param2)与客户端一致或版本号指定为空的字符串('')时,可正常打开数据库,返回database对象,否则都将抛出异常;
当指定的数据库名(param1)不存在时,将新创建一个符合参数的数据库,并返回database对象。
第一个参数:数据库名
第二个参数:当前数据库版本,若指定版本号与浏览器客户端不一致将报错,无法打开数据库,并抛出版本不匹配错误。可以指定为空('');建议指定为空字符串(''),其他若不匹配都将报错。仅当指定的版本与客户端一致或指定为''时,可以正常打开数据库;
第三个参数:数据库描述。但实际感觉没啥用处。像是被丢弃了。
第四个参数:数据库大小
第五个参数:一个回调函数,当要打开的数据库不存在时,会将db作为参数调用,同时openDatabase也会返回db; 特别注意:回调函数执行为异步操作,需当心;比如在回调函数F中初始化创建了一张表A,但由于是异步的,在拿着openDatabase返回的db做操作时,就可能查询不到表A,因为之前的回调函数F可能还没完成。
个人感觉不好使,建议弃用。

对象结构展示:

数据操作对象Database

事务对象Transaction

r  SQLResultSet sql操作返回结果对象。一个是读取select数据时返回的对象,一个是写入insert数据时返回的对象

   

r (SQLResultSet) --> rows (SQLResultSetRowList)

 

参考资料:

   Web SQL Database API

    

转载于:https://www.cnblogs.com/javawjw/p/websql.html

你可能感兴趣的文章
在外面吃饭,你会用开水烫餐具吗?事实太吓人了!
查看>>
DBImport V3.1 数据互导工具及文档生成器更新发布
查看>>
欧盟与美国的个人数据传输保护协议尘埃落定
查看>>
成都大数据三大平台正式上线
查看>>
华为与GE建立战略合作伙伴关系,加速工业物联网联合创新
查看>>
完善机制强化安全保障能力建设
查看>>
CIO访谈实录:英国电讯媒体集团首席信息官亨利·科恩
查看>>
微软称赞Windows Defender,卡巴斯基则嘲笑其没用
查看>>
浅谈软件测试用例
查看>>
每家企业应该知道的10家SaaS初创公司
查看>>
各种JDBC连接数据库的常用代码
查看>>
得大数据者得量化投资
查看>>
颠覆传统 微服务器剑指数据中心
查看>>
UCSB研发量子传感技术,具备纳米级别的空间分辨率
查看>>
智慧城市,美好生活刚开始
查看>>
混合云中如何阻断I/O瓶颈?
查看>>
Linux 64位操作系统安装配置java
查看>>
SolarCity欲为500万美国家庭搭建太阳能屋顶
查看>>
苹果进军印度市场到底有多难 连财政部长都不帮忙
查看>>
监控摄像机选型攻略之技术类型选用
查看>>