HTML5中本地数据库(SQLLite)的基础

在html5中,可以像访问本地文件那样轻松的对内置数据库进行直接访问。

html5中内置了两种数据库,一种为SQLLite,另一种为indexedDB。

在js中使用SQLLite数据库的步骤:

1.创建访问数据库的对象

      var db = openDatabase("myDB","1.0","test db",1024*100);

说明:

1. 该方法返回的是创建的数据库的对象,如果该数据库不存在才会创建这个数据库。

2. 第一个参数:数据库的名称

第二个参数:数据库的版本号

第三个参数:数据库的描述

第四个参数:数据库的大小

2.使用事务处理

      db.transaction(function(tx){
            tx.executeSql("");
        })

说明:

1.使用事务处理的原因:可以防止对数据库进行访问、执行有关操作时受到外界的干扰。在web上可能同时有很多人对网页进行访问,如果在访问数据库的过程中,正在操作的数据库被其他用户修改了,会引起很多意想不到的结果,因此使用事务来达到操作完成之前阻止其他用户对数据库的访问。

2.function(tx):是一个回调函数

3.tx.executeSql():该方法是用来执行sql语句的。

transaction.executeSql(sqlquery,[],dataHandler,errorHandler)

第一个参数:是数据库操作的sql语句

第二个参数:sql语句中所使用的参数的数组

第三个参数:成功执行sql语句后调用的回调函数,

function dataHandler(transaction,results)

第四个参数:执行sql语句时,如果出错调用的回调函数,

function errorHandler(transaction,errmsg)

案例:网络留言板

html代码:

<!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="UTF-8">
    <title></title>
    <script src="html5TestJS.js"></script>
</head>
<body onload="init()">
    <table>
        <tr>
            <td>姓名:</td>
            <td><input type="text" id="name"></td>
        </tr>
        <tr>
            <td>留言:</td>
            <td><input type="text" id="memo"></td>
        </tr>
        <tr>
            <td><input type="button" value="保存" onclick="saveData()"></td>
            <td><input type="button" value="删除某个表" onclick="dropTable()"></td>
        </tr>
    </table>
<hr>
<table border="1" id="datatable"></table>
    <p id="msg"></p>
</body>
</html>

js文件:

/**
 * Created by Administrator on 2016/5/6 0006.
 */
var datatable = null;
var db = openDatabase("MyData","","My Database",1024*100);

function init(){
    datatable = document.getElementById("datatable");
    showAllData();
}

//删除html中table下的所有的子节点
function removeAllData(){
    for(var i=datatable.childNodes.length-1;i>=0;i--){
        datatable.removeChild(datatable.childNodes[i]);
    }
    var tr = document.createElement("tr");
    var th1 = document.createElement("th");
    var th2 = document.createElement("th");
    var th3 = document.createElement("th");

    th1.innerHTML = "姓名";
    th2.innerHTML = "留言";
    th3.innerHTML = "时间";

    tr.appendChild(th1);
    tr.appendChild(th2);
    tr.appendChild(th3);

    datatable.appendChild(tr);
}

//显示数据信息内容
function showData(row){
    var tr = document.createElement("tr");
    var td1 = document.createElement("td");
    var td2 = document.createElement("td");
    var td3 = document.createElement("td");

    td1.innerHTML = row.name;
    td2.innerHTML = row.message;
    var t = new Date();
    t.setTime(row.time);
    td3.innerHTML = t.toLocaleDateString()+" "+ t.toLocaleTimeString();

    tr.appendChild(td1);
    tr.appendChild(td2);
    tr.appendChild(td3);

    datatable.appendChild(tr);
}

//显示当前本地数据库中所有的数据信息
function showAllData(){
    db.transaction(function(tx){
        tx.executeSql("create table if not exists MsgData(name text,message text,time integer)",[]);
        tx.executeSql("select * from MsgData",[],function(tx,rs){
            removeAllData();
            for(var i=0;i<rs.rows.length;i++){
                showData(rs.rows.item(i));
            }
        });
    })
}

//向本地数据库中添加数据
function addData(name,message,time){
    db.transaction(function(tx){
        tx.executeSql("insert into MsgData values (?,?,?)",[name,message,time],function(tx,rs){
            window.alert("插入成功!");
        },function(tx,error){
            window.alert(error.source+"::"+error.message);
        });
    })
}

//保存table中提交的数据
function saveData(){
    var name = document.getElementById("name").value;
    var memo = document.getElementById("memo").value;
    var time = new Date().getTime();
    addData(name,memo,time);
    showAllData();
}

//删除某一个表
function dropTable(){
    var tableName = window.prompt("请输入要删除的表名称:","");
    db.transaction(function(tx){
        tx.executeSql("drop table "+tableName+"",[],function(tx,rs){
            window.alert("表删除成功!");
        },function(tx,error){
            window.alert(error.source+"::"+error.message);
        });
    })
}

效果演示:

开发者这工具中的数据库表中的数据信息:

时间: 2024-10-07 20:16:14

HTML5中本地数据库(SQLLite)的基础的相关文章

html5的本地数据库

之前的应用一直用的是html5的本地存储LocvalStorage,挺方便也很实用. 最近开始做一个类似于离线电话簿的应用,于是得学习html5的本地数据库. sql语言大体上还是相同的,当然也有不一样的地方,我觉得以sqlite的为标准不容易出错. 开始前对html websql的操作可以有一下几种方式备选: 1:使用js和html5原生的方式来操作: 2:使用appcan开发环境中的数据库模块来操作: 该模块包含了appcan对数据库的基础操作 appcan.database.create(

html5之本地数据库

<!DOCTYPE html><html><head lang="en"> <meta charset="UTF-8"> <script src="jquery.1.4.2.min.js"></script> <script type="text/javascript"> //创建本地数据库 var db=openDatabase("

HTML5本地数据库详解

对于复杂的数据库,HTML5使用本地数据库进行操作.这是一个浏览器端的数据库.在本地数据库中我们可以直接利用JavaScript创建数据库,并利用SQL语句执行相关的数据库操作.下面分别介绍本地数据库的各个API及其使用方法. 1.利用openDatabase创建数据库 我们可以利用openDatabase方法创建数据库.openDatabase方法传递五个参数,分别是:数据库名.数据库版本号(可省略).对数据库的描述.设置分配的数据库的大小.回调函数. 如果我们要创建一个本地数据库,可以执行如

HTML5笔记3——Web Storage和本地数据库

上一篇:HTML5笔记2——HTML5音/视频标签详解 Web Storage概述 在HTML5中,除了Canvas元素之外,另一个新增的非常重要的功能是可以再客户端本地保存数据的Web Storage功能,之前可以使用Cookies在客户端 保存诸如用户名等简单用户信息,但通过长期使用,人们发现使用Cookies存储永久数据存在几个问题. 大小:Cookies的大小被限制在4KB 带宽:Cookies是随HTTP失误一起被发送的,因此会浪费一部分发送Cookies时使用的带宽 复杂性:要正确的

html5本地存储(三)--- 本地数据库 indexedDB

html5内置了2种本地数据库,一是被称为"SQLLite",可以通过SQL语言来访问文件型SQL数据库.二是被称为"indexedDB" 的NoSQL类型的数据库,本篇主要讲indexedDB数据库. 该数据库是一种存储在客户端本地的NoSQL数据库,目前chrome11以上.Firefox4以上.Opera18以上.Safar8以上及IE10以上的浏览器提供支持 一.连接数据库 使用indexedDB.open方法连接数据库 var dbName = 'inde

HTML5教程之html 5 本地数据库(Web Sql Database)

HTML5的Web SQL Databases(html5 本地数据库)的确很诱惑人,当你发现可以用与mysql查询一样的查询语句来操作本地数据库时,你会发现这东西挺有趣的.今天,我们一起来了解HTML 5的Web SQL Database API:openDatabase.transaction.executeSql. Web SQL数据库API实际上不是HTML5规范的组成部分,而是单独的规范.它通过一套API来操纵客户端的数据库.Safari.Chrome.Firefox.Opera等主流

Html5 Web database存储和本地数据库操作

HTML5储存数据有两种方法:webDatabase(数据库形式)  和  webStorage(cookie形式) WebStorage(客户端存取数据),也有两种方法:localStorage[持久化的储存方式] 和 sessionStorag(基于session方式的数据储存[会话级别的数据储存方式]) sessionStorage设置和获取数据: 1 设置 : window.sessionStorage.setItem('key','value'); 2 3 获取 : console.l

用python处理文本,本地文件系统以及使用数据库的知识基础

主要是想通过python之流的脚本语言来进行文件系统的遍历,处理文本以及使用简易数据库的操作. 本文基于陈皓的:<程序员技术练级攻略> 一.Python csv 对于电子表格和数据库导出文件,比较常见的文件格式是.csv,所以python中的csv模块也是一个比较重要的模块.下面介绍csv常用的方法. 1.csv.reader(csvfile, dialect='excel', **fmtparams) 该函数返回一个reader对象,能够以行遍历的形式遍历行里面的数据. csvfile——需

html5-localStorage本地存储和SQLLite本地数据库

localstorage和cookie cookie缺点: ① cookie大小限制在4k左右,不适合存业务数据 ② cookie每次随HTTP事务一起发送,浪费带宽 localstorage优势: ① localstorage大小限制在500万字符左右,各个浏览器不一致 ② localstorage在隐私模式下不可读取 ③ localstorage本质是在读写文件,数据多的话会比较卡(firefox会一次性将数据导入内存,想想就觉得吓人啊) ④ localstorage不能被爬虫爬取,不要用它