HTML5-SQLLite连接

1.代码部分(可直接粘贴到html文件中运行)

<body onload="init()">
    姓名:<input type="text" id="name"><br>
    留言:<input type="text" id="memo"><br>
    <input type="button" value="保存" onclick="saveData()">
    <hr>
    <table id="datatable" border="1"></table>
    <p id="msg"></p>

    <script>
    var datatable = null;
    // C:\Users\Administrator\AppData\Local\Google\Chrome\User Data\Default\databases
    var db = openDatabase('MyData', '', 'my database', 2*1024*1024);
    // 初始化数据
    function init(){
        datatable = document.getElementById('datatable');
        showAllData();
    }

    // 展示一行数据
    function showData(row){
        var tr = document.createElement('tr');
        var td1 = document.createElement('td');
        td1.innerHTML = row.name;
        var td2 = document.createElement('td');
        td2.innerHTML = row.message;
        var td3 = document.createElement('td');
        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 MyData(name TEXT,message TEXT, time INTEGER)',[]);
            tx.executeSql('select * from MyData',[],function(tx, rs){
                removeAllData();
                for(var i = 0; i < rs.rows.length; i++){
                    showData(rs.rows[i]);
                }
            })
        })
    }

    // 清空所有数据
    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 addData(name, message, time){
        db.transaction(function(tx){
            tx.executeSql('insert into MyData values(?,?,?)',[name,message,time],
            function(tx, rs){
                console.log('成功保存数据!');
            },function(tx, error){
                console.log(error.source+"::"+error.message);
            })
        })
    }

    // 保存数据
    function saveData(){
        var name = document.getElementById('name').value;
        var memo = document.getElementById('memo').value;
        var time = new Date().getTime();
        addData(name,memo,time);
        showAllData();
    }
    </script>
</body>

2.查看对应数据库(此处使用了Navicat进行连接)

(1)首先找到对应sql文件

我本地Chrome是直接c盘安装,db文件目录是:C:\Users\Administrator\AppData\Local\Google\Chrome\User Data\Default\databases

Databases.db是数据库的一些信息,

file__0目录下是代码中create的表数据。

 

 

然后使用Navicat连接:

 

该文件使用Navicat打开后,如下图:

 

 

接下来就可以继续进行其他操作了~

 

参考书籍:《HTML5与CSS3权威指南》8.2 本地数据库

参考文章:HTML5本地数据库(SQLite)示例

感谢

posted @ 2018-05-15 16:25  奔跑的铃铛  阅读(2891)  评论(1编辑  收藏  举报