HTML5深入学习之 WebSQL 数据库

概述

  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('删除表失败');
                    }
                );

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

  

原文地址:https://www.cnblogs.com/duxiu-fang/p/11110083.html