概述

  WebSQL 并不是 HTML5规范的一部分,而是一个独立的规范,它可以用来做一些离线应用

核心API

  • openDatabase() => 用来打开或创建数据库(没有时则创建,有则打开)
  • transaction()  => 这个方法可以控制一个或多个事务,以及基于这种情况提交或者回滚
  • executeSql()       =>用于执行实际的 SQl 查询

判断浏览器是否支持该项功能

  这个功能可以在最新版的 chrome, Safari 和 Opera

  

if (window.openDatabase) {
// 操作 web SQL
} else {
alert('当前浏览器不支持 webSQL !!!');
}

打开数据库

       /**
* 打开或创建数据库
* @param1 数据库名称
* @param2 版本号
* @param3 描述
* @param4 数据库大小
* @param5 回调函数
*/
var database = openDatabase('stu', '1.0', '学生表', 1024*1024, function () {});

开启一个事务

            // 开启事务
database.transaction(function (sql) {
// 在这里操作数据库的增删该查
});

新建表格

                sql.executeSql(
'create table duxiu(id int, name text)',
[],
function () {
alert('创建成功');
},
function () {
alert('创建失败');
}
);

插入一条数据

                sql.executeSql(
// ? => 占位符
'insert into duxiu (id, name) values (?, ?)',
[2, '张三'],
function () {
alert('插入一条数据成功');
},
function () {
alert('插入一条数据失败');
}
);

修改数据

                sql.executeSql(
'update duxiu set name = ?, id = ? where rowid = ?',
['王五', 3, 3],
function () {
alert('修改成功');
},
function () {
alert('修改失败');
}
);

查找数据

  我这里是将数据查找出来并且显示到了表格中

  

                sql.executeSql(
'select * from duxiu',
[],
function (sql, res) {
// console.log(res);
var data = res.rows;
console.log(data);
// console.log(data.length);
var table = document.createElement('table');
document.querySelector('div').appendChild(table);
for (var i = 0; i < data.length; i++) {
var tr = document.createElement('tr');
table.appendChild(tr);
tr.innerHTML = '<td>' + data[i].id + '</td>';
tr.innerHTML += '<td>' + data[i].name + '</td>';
}
alert('查找成功');
},
function () {
alert('查找失败');
}
);

删除数据

                sql.executeSql(
'delete from duxiu where id = ?',
[1], // 参数
function () {
alert('删除数据成功');
},
function () {
alert('删除数据失败');
}
);

删除表格

                sql.executeSql(
'drop table duxiu',
[],
function () {
alert('删除表成功');
},
function () {
alert('删除表失败');
}
);

  那么,是不是每个人都想过有没有删除数据库的方法呢? 反正我是想了并且去查了,答案是  没有!!!!!!!!

  

HTML5深入学习之 WebSQL 数据库的更多相关文章

  1. 数百个 HTML5 例子学习 HT 图形组件 – 拓扑图篇

    HT 是啥:Everything you need to create cutting-edge 2D and 3D visualization. 这口号是当年心目中的产品方向,接着就朝这个方向慢慢打 ...

  2. (转)HTML5开发学习(3):本地存储之Web Sql Database

    原文:http://www.cnblogs.com/xumingxiang/archive/2012/03/25/2416386.html HTML5开发学习(3):本地存储之Web Sql Data ...

  3. HTML5 例子学习 HT 图形组件

    HTML5 例子学习 HT 图形组件 HT 是啥:Everything you need to create cutting-edge 2D and 3D visualization. 这口号是当年心 ...

  4. H5操作WebSQL数据库

    HTML代码: <!DOCTYPE html> <html> <head lang="en"> <meta charset="U ...

  5. 数百个 HTML5 例子学习 HT 图形组件 – 3D建模篇

    http://www.hightopo.com/demo/pipeline/index.html <数百个 HTML5 例子学习 HT 图形组件 – WebGL 3D 篇>里提到 HT 很 ...

  6. 数百个 HTML5 例子学习 HT 图形组件 – 3D 建模篇

    http://www.hightopo.com/demo/pipeline/index.html <数百个 HTML5 例子学习 HT 图形组件 – WebGL 3D 篇>里提到 HT 很 ...

  7. 数百个 HTML5 例子学习 HT 图形组件 – WebGL 3D 篇

    <数百个 HTML5 例子学习 HT 图形组件 – 拓扑图篇>一文让读者了解了 HT的 2D 拓扑图组件使用,本文将对 HT 的 3D 功能做个综合性的介绍,以便初学者可快速上手使用 HT ...

  8. HTML5 CSS3学习

    HTML5 CSS3学习 :http://www.1000zhu.com/course/css3/ HTML5 相关书籍:   http://www.html5cn.com.cn/news/gdt/2 ...

  9. (转)HTML5开发学习(2):本地存储之localStorage 、sessionStorage、globalStorage

    原文:http://www.cnblogs.com/xumingxiang/archive/2012/03/25/2416386.html HTML5开发学习(2):本地存储之localStorage ...

随机推荐

  1. UiPath: Selectors repair 选择器的修复,即被选择的按钮发生改变如何选择第二按钮

    实现批量注册用户功能时,出现第一个用户注册完时,弹出确认按钮,点击即可,但是第二个用户注册完成时,弹出的按钮与第一个有差异,图形用户界面元素及其父元素的属性都发生改变.所以就点不了按钮,就卡死在这.如 ...

  2. 如何修改dedecms专题目录默认名称special

    专题有一个聚合的效果,一般会比普通的文章页更符合用户需求.如果用dedecms建专题的话,默认的目录是special,怎么修改修改dedecms专题目录名称呢,比如将/special/改为/s/这样更 ...

  3. Scikit-learn Preprocessing 预处理

    本文主要是对照scikit-learn的preprocessing章节结合代码简单的回顾下预处理技术的几种方法,主要包括标准化.数据最大最小缩放处理.正则化.特征二值化和数据缺失值处理. 数学基础 均 ...

  4. meta设置与去除默认样式--移动端开发整理笔记(一)

    视口设置: <meta name="viewport" content="width=device-width,user-scalable=no,initial-s ...

  5. 简述 gevent模块的作用和应用场景。

    当一个greenlet遇到IO操作时,比如访问网络,就自动切换到其他的greenlet,等到IO操作完成, 再在适当的时候切换回来继续执行.由于IO操作非常耗时,经常使程序处于等待状态, 有了geve ...

  6. 【java异常】It's likely that neither a Result Type nor a Result Map was specified

    错误原因:mybatis配置文件没有返回类型参数 resultType 解决办法:resultType= 添加

  7. ESA2GJK1DH1K开发教程: 来看看最新整理的整个开发板的教程大纲吧

    项目开发:教程大纲(测试板型号:ESA2GJK1DH1K) 购买链接: https://item.taobao.com/item.htm?spm=a2oq0.12575281.0.0.25911deb ...

  8. [RN] React Native 下拉放大动画

    React Native 下拉放大动画 经测试,无法运行 https://www.jianshu.com/p/1c960ad75020

  9. web标准以及w3c标准

    web标准:将结构.表现.行为分离,使其更具有模块化. w3c标准:标签字母要小写,双标签要闭合,标签不允许随意嵌套. 尽量使用外部样式和外链js,使结构.表现.行为分为三块,这样可以提高页面渲染速度 ...

  10. day 16

    Weep no more, no sigh, nor groan. Sorrow calls no time that's gone. 别哭泣,别叹息,别呻吟:悲伤唤不回流逝的时光.