zoukankan      html  css  js  c++  java
  • HTML5 关于Web SQL 数据库的学习

    1.什么是Web SQL 数据库?

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

    核心方法

    以下是规范中定义的三个核心方法:

    1. openDatabase:这个方法使用现有的数据库或者新建的数据库创建一个数据库对象。
    2. transaction:这个方法让我们能够控制一个事务,以及基于这种情况执行提交或者回滚。
    3. executeSql:这个方法用于执行实际的 SQL 查询

    (1)首先使用openDatabase函数创建一个本地数据库,如果已经创建,就不会重复创建,而是打开

     var db = openDatabase('mydb', '1.0', 'Test DB', 2 * 1024 * 1024,success);
    if (!db)
    {
    alert("数据库创建失败!");
    } else
    {
    alert("数据库创建成功!");
    }

    注意:

    mydb为创建数据库名称
    1.0为版本号
    Test DB为描述文件
    2*1024*1024为数据库大小
    success是回调函数,创建成功后会执行一次
    创建的数据库在GoogleChromeUser DataDefaultdatabases文件夹下
    创建的是一个sqllite数据库,可以用SQLiteSpy打开文件,可以看到里面的数据。SQLiteSpy是一个绿色软件,可以百度一下下载地址或SQLiteSpy官方下载:SQLiteSpy
    暂时没提供删除数据库的api
    清除缓存后数据库就会被删除

    (2)创建表
     db.transaction(function (tx) {
            tx.executeSql('CREATE TABLE IF NOT EXISTS User (text, password)');
        });

    (3)增加数据

    function Save()
        {
            db.transaction(function (tx) {
                tx.executeSql('INSERT INTO User (text, password) VALUES ("' + document.getElementById("ipttext").value + '", "' + document.getElementById("iptpwd").value + '")');
            });
        }
    (4)修改数据
     function Update()
        {
            db.transaction(function (tx) {
                tx.executeSql('UPDATE User set password="'+document.getElementById("iptpwd").value+'" where text=?', [document.getElementById("ipttext").value]);
            });
        }
    
    

    注意:?号好像只能可以用一次,以下这种执行不成功,不知道为啥

    tx.executeSql('UPDATE User set password=? where text=?',[document.getElementById("iptpwd").value], [document.getElementById("ipttext").value]);

    还有[]号必须有,要不也不成功


    (5)删除数据
    function Delete()
        {
            db.transaction(function (tx) {
                tx.executeSql('DELETE FROM User WHERE text=?',[document.getElementById("ipttext").value]);
            });
    
        }
    
    

    总结:作为本地简单存储还可以用,不太完善,特定场景可以使用

    其他例子:https://blog.csdn.net/qq_Shu/article/details/92840510

    其他资料:https://www.jb51.net/html5/65058.html




          






  • 相关阅读:
    poj2356
    poj2021
    网络直销:贯通式电子商务营销
    网络营销趋同化时代到来
    一个睡五分钟等于六个钟头的方法
    张胜(帮别人名字作诗)
    我在阳光下向你表白
    李建逸(帮别人名字作诗)
    夜深,你的手机为谁而开
    杨英(帮别人名字作诗)
  • 原文地址:https://www.cnblogs.com/daimaxuejia/p/12467544.html
Copyright © 2011-2022 走看看