zoukankan      html  css  js  c++  java
  • 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:UsersAdministratorAppDataLocalGoogleChromeUser DataDefaultdatabases
        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:UsersAdministratorAppDataLocalGoogleChromeUser DataDefaultdatabases

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

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

    然后使用Navicat连接:

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

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

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

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

    感谢

  • 相关阅读:
    剑指offer(14)链表中倒数第K个节点
    剑指offer(13)调整数组顺序使奇数位于偶数前面
    跨域资源共享CORS
    同源政策
    剑指offer(12)数值的整数次方
    剑指offer(11)二进制中1的个数
    面试金典——交点
    LeetCode——简化路径
    LeetCode——跳跃游戏 I-II
    LeetCode——最大矩形
  • 原文地址:https://www.cnblogs.com/ksl666/p/9041606.html
Copyright © 2011-2022 走看看