本地数据库

在HTML5中,可以像访问本地文件那样轻松的  对内置数据库进行直接访问
.html5中内置了两种数据库,一种为SQLLite,另一种为IndexedDB的。

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

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

var db=openDatabase('db1','1.0','test db',2014*10);

说明: 
1。该方法返回的是创建的数据库的对象,如果该数据库不存在才会创建这个数据库 
.2。第一个参数:的数据库名称 
第二个参数:的数据库版本号 
第三个参数:数据库的描述 
第四个参数:数据库的大小

2.使用事务处理

 db.transaction(function (fx) {
            fx.executeSql('create table if not exists UserInfo(username TEXT,password TEXT)',[]);
            var username=document.getElementById('username').value;
            var password=document.getElementById('password').value;
            console.log(username+'---'+password);
            fx.executeSql('insert into UserInfo values(?,?)',[username,password],function () {
                alert('添加成功');
            })
        })

说明: 
1。使用事务处理的原因:可以防止对数据库进行访问,执行有关操作时受到外界的干扰。在web上可能同时有很多人对网页进行访问,如果在访问数据库的过程中,正在操作的数据库被其他用户修改了,会引起很多意想不到的结果,因此使用事务来达到操作完成之前阻止  其他用户对数据库的访问
.2.function(TX):是一个回调函数 
3.tx.executeSql():该方法是用来执行sql语句的.transaction.executeSql 
(sqlquery,[],dataHandler,errorHandler) 
第一个参数:是数据库操作的sql语句 
第二个参数:sql语句中所使用的参数的数组 
第三个参数:成功执行SQL语句后调用的回调函数, 
函数的DataHandler(事务,结果) 
第四个参数:执行SQL语句时,如果出错调用的回调函数, 
函数的ErrorHandler(事务,ERRMSG)

 

 

案例:网络留言板

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

效果演示: 
本地数据库_第1张图片

开发者这工具中的数据库表中的数据信息: 
本地数据库_第2张图片

你可能感兴趣的:(本地数据库)