HTML 5 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 < len; i++){ alert(results.rows.item(i).log ); } }, null); });

完整的例子

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

Log message created and row inserted.

Found rows: 2

foobar

logmsg

原文链接:http://www.tutorialspoint.com/html5/html5_web_sql.htm

HTML 5 Web SQL操作客户端数据库相关推荐

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

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

  2. HTML5 API详解(17):Web SQL DataBase本地数据库

    Web SQL Database是一个已经废弃的规范,但是鉴于除了IE和Firefox,其他浏览器都已经实现了Web SQL Database,并且它还具有一些HTML5 Storage所不具有的特性 ...

  3. mysql一些基本sql操作_MySql数据库的一些基本操作---------------SQL语法

    MySql数据库是比较常用的关系型数据库,操作用的是sql语句,下面来说一说MySql的一些基本操作 MySql数据库是一种C/S型的模式,即客户端/服务器端,对应到具体应用上,便是bin目录下的my ...

  4. Golang原生sql操作Mysql数据库增删改查

    Golang要操作mysql数据库,首先需要在当期系统配置GOPATH,因为需要使用go get命令把驱动包下载到GOPATH下使用. 首先配置好你的GOPATH,执行以下命令,下载安装mysql驱动 ...

  5. sql操作mysql数据库_一些常用的操作MySQL数据库的sql语句

    创建数据库:create database 数据库名; 删除数据库:drop datebase 数据库名; 查看数据库:show databases;(所有数据库) 使用数据库:use 数据库名;(之 ...

  6. MySQL数据库基础:安装+登入+SQL操作语句+数据库授权、备份、恢复+其他操作

    MySQL简介 MySQL最流行的RDBMS(关系型数据库系统),特别是在WEB应用方面,表现特点 数据以表格的形式出现 每行为各种记录名称 每列为记录名称所对应的数据域 许多的行和列组成一张表单 若 ...

  7. mysql使用已有的数据库_使用SQL操作MySQL数据库

    用SHOW显示已有的数据库 句法:SHOW DATABASES [LIKE wild] 如果使用LIKE wild部分,wild字符串可以是一个使用SQL的"%"和"_& ...

  8. jsch连接mysql_求用jsch网络工具包通过ssh连接远程oracle数据库并发送sql操作语句(数据库在unix上)java代码例子...

    求用jsch网络工具包通过ssh连接远程oracle数据库(数据库在unix上)java代码例子:为何jsch发送:sqlplususer/pwd@service此命令,却没有结果返回啊.下面是代码: ...

  9. beego原生mysql查询_Beego基础学习(五)Golang原生sql操作Mysql数据库增删改查(基于Beego下测试)...

    //控制器文件 package controllers import ("fmt" "github.com/astaxie/beego" "mypro ...

最新文章

  1. LB负载均衡集群 - NAT
  2. tensorflow训练打游戏ai
  3. Windows页目录自映射方案
  4. 窗体的扩展样式GWL_EXSTYLE:用于SetWindowLong
  5. 让智能家居产品操控更简单 快捷键来了
  6. 使用Outlook 2007连接到Exchange Server 2003、2007时出现没有默认网关的错误
  7. 计算机学报在线阅读,面向目标检测与姿态估计的联合文法模型计算机学报.pdf...
  8. 前端笔记-使用vue绑定id使得组件更加灵活(在使用echarts时常用)
  9. [framework] debuging
  10. Python进程间通信之管道Pipe
  11. JavaWeb:XML
  12. MyBatis源码阅读(四) --- SqlSession的创建过程
  13. Ucenter实现多个网站同步登录
  14. MP3格式的音乐怎么转换成WAV格式?小编教你一招
  15. gcc简介和命令行参数说明
  16. 怎么把腾讯QLV格式的“将夜”转换成MP4
  17. KEIL、uVision、RealView、MDK、KEIL C51区别比较
  18. 量化选股 聚宽学习获取财务数据
  19. 达梦客户端工具的使用
  20. 艾兰岛逻辑-触发区域

热门文章

  1. 抱歉,Xposed真的可以为所欲为——6.你的表白撤不回了(转载)
  2. php怎么改字的大小,请教如何改验证里面字的大小
  3. SATA学习之四 基本原理
  4. Okhttp3最佳使用方式
  5. 【20201231期AI简报】视觉系统的革新:嵌入式AI摄像头!还有跨年特别活动等你来哦...
  6. UE4在windows下打包IOS(虚拟机)
  7. 以太坊源码解析 - RLP(理论)
  8. FPS游戏实战数据集|yolov8训练模型导出|C/C++项目|驱动鼠标模拟人工|加密狗USB硬件虚拟化
  9. java实现比心_如何在java中制作比心图案?
  10. 湖南卫视淘金互联网:芒果TV估值或超60亿元