WebSQL客户端数据库

作者: 摆渡侠 | 来源:发表于2019-07-17 10:34 被阅读0次

WebSQL为客户端关系型数据库,但浏览器支持不是很好,目前chrome支持的最好,其他浏览器部分版本支持。所以这里只做为学习了解,如果有数据库(mysql)经验的同学,能比较好的理解这一块内容。话不多说,直接上代码:

<body>
<button id="btn-create">创建user数据表</button>
<button id="btn-insert">插入数据</button>
<button id="btn-query">查询数据</button>
<button id="btn-update">修改数据</button>
<button id="btn-delete">删除数据</button>
<button id="btn-drop">删除user数据表</button>
</body>
  //模拟一条user数据
  let user = {
    username: "creatto",
    password: "123123",
    info: "beaconApp开发团队中一员"
  };

  /**
   * 创建数据库 或者此数据库已经存在 那么就是打开数据库
   * name: 数据库名称
   * version: 版本号
   * displayName: 对数据库的描述
   * estimatedSize: 设置数据的大小
   * creationCallback: 回调函数(可省略)
   */
  let db = openDatabase("MySql", "1.0", "我的数据库描述", 1024 * 1024);
  let result = db ? "数据库创建成功" : "数据库创建失败";
  console.log(result);

  const USER_TABLE_SQL = "create table if not exists userTable (id integer primary key autoincrement,username varchar(12)," +
    "password varchar(16),info text)";
  const INSERT_USER_SQL = "insert into userTable (username, password,info) values(?,?,?)";
  const QUERY_USER_SQL = "select * from userTable";
  const UPDATE_USER_SQL = "update userTable set password = ? where username = ?";
  const DELETE_USER_SQL = "delete from userTable where username = ?";
  const DROP_USER_SQL = "drop table userTable";
  const findId = id => document.getElementById(id);

  //创建数据表
  function createTable() {
    db.transaction(tx => {
      tx.executeSql(USER_TABLE_SQL, [],(tx, result) => {
        alert('创建user表成功:' + result);
      }, (tx, error) => {
        alert('创建user表失败:' + error.message);
      })
    })
  }

  //插入数据
  function insertData(user) {
    db.transaction(tx => {
      tx.executeSql(INSERT_USER_SQL,[user.username, user.password, user.info],(tx, result) => {
      alert('添加数据成功:');
      }, (tx, error) => {
        alert('添加数据失败:' + error.message);
      })
    })
  }

  //查询数据
  function queryData() {
    db.transaction(tx => {
      tx.executeSql(QUERY_USER_SQL, [],(tx, result) => {
        console.log(result);
      },(tx, error) => {
        console.log('查询失败: ' + error.message)
      })
    })
  }


  //修改数据
  function updateData(user) {
    db.transaction(tx => {
      tx.executeSql(UPDATE_USER_SQL, [user.password, user.username],(tx, result) => {
      alert("修改数据成功")
      }, (tx, error) => {
        alert("修改数据失败:" + error.message)
      })
    })
  }

  //删除数据
  function deleteData(user) {
    db.transaction(tx => {
      tx.executeSql(DELETE_USER_SQL, [user.username],(transaction, resultSet) => {
        alert("删除数据成功")
      }, (transaction, error) => {
        alert("删除数据失败:" + error.message)
      })
    })
  }

  //删除数据表
  function dropTable() {
    db.transaction(tx => {
      tx.executeSql(DROP_USER_SQL, [],(transaction, resultSet) => {
        alert("删除数据表成功")
      }, (transaction, error) => {
        alert("删除数据表失败:" + error.message)
      })
    })
  }

  /**
   * 点击事件 增删查改
   */
  let btnCreate = findId("btn-create");
  let btnInsert = findId("btn-insert");
  let btnQuery = findId("btn-query");
  let btnUpdate = findId("btn-update");
  let btnDelete = findId("btn-delete");
  let btnDrop = findId("btn-drop");
  btnCreate.onclick = () => createTable();
  btnInsert.onclick = () => insertData(user);
  btnQuery.onclick = () => queryData();
  btnUpdate.onclick = () => {
    user.password = "111666666"; //修改密码
    updateData(user);
  };
  btnDelete.onclick = () => deleteData(user);
  btnDrop.onclick = () => dropTable();

相关文章

  • WebSQL客户端数据库

    WebSQL为客户端关系型数据库,但浏览器支持不是很好,目前chrome支持的最好,其他浏览器部分版本支持。所以这...

  • indexedDB 使用记录

    由于之前的项目采用过websql作为数据存储,就是因为websql和真机的sqlite都是属于关系型数据库,可以使...

  • 浏览器 IndexDB 的使用

    浏览器也支持数据库,目前有IndexDB 和 WebSql(仅Chrome支持)可以选择,相比localStro...

  • webSQL

    HTML5 Web 存储 HTML5 应用程序缓存HTML5 Web SQL 数据库Web SQL 数据库 API...

  • JavaScript操作sqlite

    在html5中内置了两种数据库,一种为SQLite(也是WebSQL),另一种为indexedDB。sqlite的...

  • IndexedDB 的打开方式

    IndexedDB 是一个浏览器内置的非关系型数据库,用于替代曾经的 webSQL,据说很强大,反正我已经上车了。...

  • 【15】web sql数据库

    websql在浏览器运行的轻量级数据库,随着html5引入,既然是数据库我们就可以对它使用sql语句进行增删改查操...

  • 整理一下数据库的关系

    本来前端是不需要数据库的,但是种种原因,还是需要弄个数据库。而且一下弄了四个,两个webSQL的,两个indexe...

  • 前端数据库——WebSQL和IndexedDB

    一、WebSQL WebSQL是前端的一个独立模块,是web存储方式的一种,我们调试的时候会经常看到,只是一般很少...

  • 前端数据库——WebSQL和IndexedDB

    一、WebSQL WebSQL是前端的一个独立模块,是web存储方式的一种,我们调试的时候会经常看到,只是一般很少...

网友评论

    本文标题:WebSQL客户端数据库

    本文链接:https://www.haomeiwen.com/subject/gbnflctx.html