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查询。

示例代码:

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

参考资料:

http://www.w3.org/TR/webdatabase/   Web SQL Database API

http://kb.cnblogs.com/page/74857/

http://www.ibm.com/developerworks/cn/web/1108_zhaifeng_websqldb/

web本地存储-WebSQL的更多相关文章

  1. web本地存储

    Web本地存储 通过本地存储(Local Storage),web 应用程序能够在用户浏览器中对数据进行本地的存储. 在 HTML5 之前,应用程序数据只能存储在 cookie 中,包括每个服务器请求 ...

  2. web 本地存储 (localStorage、sessionStorage)

    web 本地存储 (localStorage.sessionStorage,cookie) localStorage(长期储存):即使关闭浏览器数据也不会删除,除非使用localStorage.cle ...

  3. [web 前端] web本地存储(localStorage、sessionStorage)

    cp from : https://blog.csdn.net/mjzhang1993/article/details/70820868 web 本地存储 (localStorage.sessionS ...

  4. web本地存储(localStorage、sessionStorage)

    web 本地存储 (localStorage.sessionStorage) 说明 对浏览器来说,使用 Web Storage 存储键值对比存储 Cookie 方式更直观,而且容量更大,它包含两种:l ...

  5. Html5 web 本地存储 (localStorage、sessionStorage)

    HTML5 提供了两种在客户端存储数据的新方法localStorage,sessionStorage sessionStorage(临时存储) :为每一个数据源维持一个存储区域,在浏览器打开期间存在, ...

  6. Html5 web本地存储

    Web Storage是HTML5引入的一个非常重要的功能,可以在客户端本地存储数据,类似HTML4的cookie,但可实现功能要比cookie强大的多,cookie大小被限制在4KB,Web Sto ...

  7. web本地存储localStorage和sessionStorage

    用谷歌浏览器调试网页程序时候发现有一个这个栏目 记录本地存储的相关信息(cookie,sessionStorage,LocalStorage等)的存储信息 1.LocalStorage localst ...

  8. web本地存储 sessionStorage 和 localStorage

    1.sessionStorage  临时存储 为每一个数据源维持一个存储区域,在浏览器打开期间存在,包括页面重新加载. 2.localStorage 长期存储 与sessionStorage一样,但在 ...

  9. web本地存储-IndexedDB

    IndexedDB, HTML5中的一种数据存储方式,索引数据库. 一个网站可能有一个或多个 IndexedDB 数据库,每个数据库必须具有惟一的名称.一个数据库可包含多个对象存储,一个对象存储相当于 ...

随机推荐

  1. UVa230 Borrowers (STL)

     Borrowers  I mean your borrowers of books - those mutilators of collections, spoilers of the symmet ...

  2. 两阶段提交及JTA

    两阶段提交及JTA 分布式事务 分布式事务简介 分布式事务是指会涉及到操作多个数据库(或者提供事务语义的系统,如JMS)的事务.其实就是将对同一数据库事务的概念扩大到了对多个数据库的事务.目的是为了保 ...

  3. SQL Server 存储过程自启动

    前期准备: use master; create table LoginLog(LoginName nvarchar(32),LoginTime datetime); create procedure ...

  4. Python学习 常识+基础基础

    特点: 优雅,明确,简单 领域: web网站   网络服务   系统工具和脚本 跨平台 对缩进要求严格 注释:# 动态语言:变量本身类型不固定 raw字符串与 多行字符串 raw字符串: 不需要转义字 ...

  5. 对DTU系统结构的重新思考

        从决定做DTU开始无时无刻不在对这个新的产品系统进行思考,从最开始的ucos多任务结果到QPC基 于事件回调的软件结果,再到现在准备结合两者使用QPC+freeRTOS的系统结构.     原 ...

  6. U盘读写速度测试

    1.ATTO Disk Benchmark    测U盘读写速度 ATTO Disk Benchmark 是一款简单易用的磁盘传输速率检测软件,可以用来检测硬盘.U盘.存储卡及其它可移动磁盘的读取及写 ...

  7. 无法关闭的QT程序——思路开阔一下,原来这么简单!

    做一个无法关闭的QT程序(想关闭时要在任务管理器里关闭),看似很难, 其实它并不难,只要让程序在关闭时启动它自身就可以了. 上代码: #include <QtGui> class Temp ...

  8. tls和ssl

    一个存在于 SSL 3.0 协议中的新漏洞于被披露,通过此漏洞,第三方可以拦截通过采用 SSL 3.0 的服务器传输的重要信息. 问题出在哪里? 与此问题相关的不是 SSL 证书本身,而是进行加密处理 ...

  9. pack布局

    Chapter 2. Geometry Management 第2章 布局管理: 显示部件在屏幕上,他们必须被传递给布局管理器. 布局管理器 控制部件的位置和大小 在显示窗口,几个布局管理器是可用的在 ...

  10. 深入了解 Flexbox 伸缩盒模型

    Flexbox(伸缩布局盒) 是 CSS3 中一个新的布局模式,为了现代网络中更为复杂的网页需求而设计.本文将介绍 Flexbox 语法的技术细节.浏览器的支持越来越快,所以当 Flexbox 被广泛 ...