zoukankan      html  css  js  c++  java
  • 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('删除表失败');
                        }
                    );

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

      

  • 相关阅读:
    第12章 项目采购管理
    C# 利用xml动态生成带图标菜单
    C#正则表达式整理备忘
    IE8"开发人员工具"使用详解下
    拖盘控件notifyIcon演示例程
    多列选择框控件checkedListBox演示程序
    树形框treeView演示程序
    错误提示控件errorProvider演示例程
    IE8“开发人员工具”使用详解上
    c#中分割字符串的几种方法
  • 原文地址:https://www.cnblogs.com/duxiu-fang/p/11110083.html
Copyright © 2011-2022 走看看