Web SQL数据库API实际上未包含在HTML 5规范之中,它是一个独立的规范,它引入了一套使用SQL操作客户端数据库的API。假设你是一名优秀的Web开发人员,那毫无疑问,你对SQL和数据库的相关概念已经很熟悉了,如果你对SQL不熟悉,那在继续阅读本文之前,最好先学习一下SQL相关的教程。

最新版本的Chrome,Safari和Opera浏览器都支持Web SQL数据库。

核心方法

本文将介绍规范中定义的三个核心方法:

1、openDatabase:这个方法使用现有数据库或创建新数据库创建数据库对象。

2、transaction:这个方法允许我们根据情况控制事务提交或回滚。

3、executeSql:这个方法用于执行真实的SQL查询。

打开数据库

openDatabase方法打开一个已经存在的数据库,如果数据库不存在,它还可以创建数据库,创建并打开数据库的语法如下:

var db = openDatabase('mydb', '1.0', 'Test DB', 2 * 1024 * 1024);

上面的openDatabase方法使用了下面五个参数:

1、数据库名(mydb)

2、版本号(1.0)

3、描述(Test DB)

4、数据库大小(2*1024*1024)

5、创建回调

最后一个,即第五个参数“创建回调”,在创建数据库时会调用它,但即使没有这个参数,一样可以在运行时创建数据库。

执行查询

执行查询使用database.transaction()函数,它只需要一个参数,下面是一个真实的查询语句:

var db = openDatabase('mydb', '1.0', 'Test DB', 2 * 1024 * 1024);

db.transaction(function (tx) {

tx.executeSql('CREATE TABLE IF NOT EXISTS LOGS (id unique, log)');

});

上面的查询将会在“mydb”数据库中创建一个LOGS表。

插入操作

为了向表中插入新记录,我们在上面的查询语句中添加了一个简单的SQL查询,修改后的语句如下:

var db = openDatabase('mydb', '1.0', 'Test DB', 2 * 1024 * 1024);

db.transaction(function (tx) {

tx.executeSql('CREATE TABLE IF NOT EXISTS LOGS (id unique, log)');

tx.executeSql('INSERT INTO LOGS (id, log) VALUES (1, "foobar")');

tx.executeSql('INSERT INTO LOGS (id, log) VALUES (2, "logmsg")');

});

在插入新记录时,我们还可以传递动态值,如:

var db = openDatabase('mydb', '1.0', 'Test DB', 2 * 1024 * 1024);

db.transaction(function (tx) {

tx.executeSql('CREATE TABLE IF NOT EXISTS LOGS (id unique, log)');

tx.executeSql('INSERT INTO LOGS

(id,log) VALUES (?, ?'), [e_id, e_log];

});

这里的e_id和e_log是外部变量,executeSql在数组参数中将每个项目映射到“?”。

读操作

如果要读取已经存在的记录,我们使用一个回调捕获结果,代码如下:

var db = openDatabase('mydb', '1.0', 'Test DB', 2 * 1024 * 1024);

db.transaction(function (tx) {

tx.executeSql('CREATE TABLE IF NOT EXISTS LOGS (id unique, log)');

tx.executeSql('INSERT INTO LOGS (id, log) VALUES (1, "foobar")');

tx.executeSql('INSERT INTO LOGS (id, log) VALUES (2, "logmsg")');

});

db.transaction(function (tx) {

tx.executeSql('SELECT * FROM LOGS', [], function (tx, results) {

var len = results.rows.length, i;

msg = "

Found rows: " + len + "

";

document.querySelector('#status').innerHTML +=  msg;

for (i = 0; i

alert(results.rows.item(i).log );

}

}, null);

});

完整的例子

最后,我们在一个完整的HTML 5文档中展现前面讲述的内容,同时使用浏览器来解析这个HTML 5文档。

HTML>

var db = openDatabase('mydb', '1.0', 'Test DB', 2 * 1024 * 1024);

var msg;

db.transaction(function (tx) {

tx.executeSql('CREATE TABLE IF NOT EXISTS LOGS (id unique, log)');

tx.executeSql('INSERT INTO LOGS (id, log) VALUES (1, "foobar")');

tx.executeSql('INSERT INTO LOGS (id, log) VALUES (2, "logmsg")');

msg = '

Log message created and row inserted.

';

document.querySelector('#status').innerHTML =  msg;

});

db.transaction(function (tx) {

tx.executeSql('SELECT * FROM LOGS', [], function (tx, results) {

var len = results.rows.length, i;

msg = "

Found rows: " + len + "

";

document.querySelector('#status').innerHTML +=  msg;

for (i = 0; i

msg = "

" + results.rows.item(i).log + "

";

document.querySelector('#status').innerHTML +=  msg;

}

}, null);

});

Status Message

下面是在最新版本的Safari或Opera浏览器中产生的输出结果。

Log message created and row inserted.

Found rows: 2

foobar

logmsg

java三叉戟_HTML 5 Web SQL核心三叉戟相关推荐

  1. HTML5 学习笔记(三)——本地存储(LocalStorage、SessionStorage、Web SQL Database)

    一.HTML4客户端存储 B/S架构的应用大量的信息存储在服务器端,客户端通过请求响应的方式从服务器获得数据,这样集中存储也会给服务器带来相应的压力,有些数据可以直接存储在客户端,传统的Web技术中会 ...

  2. HTML5开发 Web SQL Database 本地数据库

    Web Database 介绍 Web SQL数据库API实际上不是HTML5规范的组成部分,而是单独的规范.它通过一套API来操纵客户端的数据库.Safari.Chrome.Firefox.Oper ...

  3. 基于Java+MySQL实现(Web)医院门诊信息管理系统【100010554】

    医院门诊信息管理系统 第 1 章绪论 1.1 项目背景 随着计算机应用的日益普及和深化,网上办公已经成为了一种趋势.医院信息化近年来也在各个医院迅速发展,医院信息系统公认为新兴的医学信息学的重要分支, ...

  4. java和python自学教程视频_免费视频教程,2019年最新Java、PYthon、web视频

    干货视频,培训机构最新java.Python.web前端.人工智能视频(基础班+就业班).价值几万的Java.PYthon.web.人工智能视频教程, 为还在学习迷茫的你提供一个学习Java.Pyth ...

  5. HTML5 Web SQL数据库

    HTML5 Web SQL 数据库 Web SQL 数据库 API 并不是 HTML5 规范的一部分,但是它是一个独立的规范,引入了一组使用 SQL 操作客户端数据库的 APIs. 如果你是一个 We ...

  6. HTML5本地存储——Web SQL Database

    在HTML5 WebStorage介绍了html5本地存储的Local Storage和Session Storage,这两个是以键值对存储的解决方案,存储少量数据结构很有用,但是对于大量结构化数据就 ...

  7. Java和PHP在Web开发方面的比较

    Java和PHP在Web开发方面的比较,比较PHP和JSP这两个Web开发技术,在目前的情况是其实是比较PHP和Java的Web开发.以下是我就几个主要方面进行的比较: 一. 语言比较 PHP是解释执 ...

  8. HTML5 Web SQL

    Web Sql Database,中文翻译作"本地数据库",是随着HTML5规范加入的在浏览器端运行的轻量级数据库. 在HTML5中,大大丰富了客户端本地可以存储的内容,添加了很多 ...

  9. html 5 本地数据库(Web Sql Database)

    基于HTML5的Web DataBase 可以让你在浏览器中进行数据持久地存储管理和有效查询,假设你的离线应用程序有需要规范化的存储功能 本文讲述如何使用核心方法openDatabase.transa ...

最新文章

  1. 如何用 Python 打飞机?
  2. Windows核心编程(3)字符编码详解
  3. 编译参数-ObjC的说明
  4. CentOS7安装RabbitMQ集群
  5. 力扣——按递增顺序显示卡牌
  6. C# 之浅拷贝与深拷贝问题拙见(一)
  7. LiveVideoStackCon 2022 上海站 专题抢先看(3)
  8. uniapp返回上一页_一例万级写入并发,百亿级数据,毫秒级返回架构分享
  9. 前端学习(670):分支流程控制if
  10. 2_数据分析—认识pandas
  11. [TWRP 2.8.4 ] 小米 3W 中文-英文版本 twrp
  12. 并查集详解(C/C++)
  13. 云计算环境下的服务器虚拟化技术,云计算技术与应用:虚拟化技术_服务器虚拟化.pdf...
  14. layui模板引擎文档 - layui.laytpl的具体使用
  15. illegal multibyte sequence
  16. JEECG3.8 全套实战视频全部开放,免费下载!
  17. 前端程序调试方法总结--高级版
  18. 中国大学MOOC 浙江大学《程序设计入门——C语言》第6周:数组与函数 测验与作业(高精度小数)
  19. Hyperf Casbin适配于Hyperf 的开源访问控制框架Casbin
  20. [自扫盲]skype、IP电话、VOIP、网络电话、互联网电话、IP拨号

热门文章

  1. JS和jQuery基础
  2. 第2章 数字系统 (计算机科学导论)
  3. 温室大棚实时监测、控制一体化解决方案
  4. npm install的时候报错 npm err code 1
  5. 2018第二届易观算法大赛报名啦
  6. 安装程序无法继续,因为你的计算机上安装了更新的Internet Explorer版本
  7. 家里有宽带还能再装一条吗_家里能不能装两个宽带?
  8. SpringBoot+Vue项目便捷洗衣服务平台
  9. java怎么延时_java怎么实现延时
  10. OpenCV图像处理:基于RANSAC的二维图像中直线、圆及椭圆的检测 C++