zoukankan      html  css  js  c++  java
  • PhoneGap下Web SQL实践

    HTML5里的Web SQL数据库,内置了SQLite数据库,

    对数据库的操作使用executeSql执行增删改查

    1. 创建数据库

    function creatDatabase(){
          db = openDatabase('Student', '1.0', 'StuManage', 2 * 1024 * 1024);
     }
    

     

    2. 创建表

    function createTable(){
    
    	if (db) {
            var strSQL = "create table if not exists StuInfo ";
            strSQL += " (StuID unique,Name text,Sex text,Score int)";
            db.transaction(function(tx) {
                tx.executeSql(strSQL)
            },
            function() {
                console.log("创建表错误");
            },
            function() {
                console.log("创建表成功");
            })
        }
    

      

    3. 增加数据

    function addData() {
        if (db) {
    
            var strSQL = "insert into StuInfo values";
            strSQL += "(?,?,?,?)";
            db.transaction(function(tx) {
                tx.executeSql(strSQL,[
    			    $$("txtStuID").value,$$("txtName").value,
    			    $$("selSex").value,$$("txtScore").value
    			],
    			function(){
    				$$("txtName").value="";
    	            $$("txtScore").value="";
    			    alert("成功增加1条记录!");
    			},
    			function(tx,ex){
    			     console.log(ex.message)
    			})
            })
    
        }
    
    }
    

     

    4. 查询数据

    function queryData(){
        if(db){
            var sql = "select * from StuInfo";
             db.transaction(function(tx) {
                tx.executeSql(sql,[],
    			function(tx, results){
    				var len = results.rows.length,i;
    				var htmlData = "";
    				for(i = 0; i < len; i++){
    				    var item = results.rows.item(i);
    				    var htmlitem = item.StuID + " " + item.Name + " " + item.Sex + " " + item.Score;
    				    htmlData += htmlitem + "</br> ";
    
    				}
    				$$("info").innerHTML = htmlData;
    			},
    			function(tx,ex){
    			     console.log(ex.message)
    			})
            })
        }
    }
    

      

    5. 删除数据

    function deleteData(){
        if (db) {
    
            var strSQL = "delete from StuInfo where StuID = ?";
            db.transaction(function(tx) {
                tx.executeSql(strSQL,[
    			    $$("txtStuID").value
    			],
    			function(){
    			    alert("成功删除1条记录!");
    			},
    			function(tx,ex){
    			     console.log(ex.message)
    			})
            })
    
        }
    
         queryData();
    }
    

      

    完整的Code如下

    <!DOCTYPE html>
    <html>
    <head>
        <meta charset="utf-8" />
        <meta name="format-detection" content="telephone=no" />
        <meta name="msapplication-tap-highlight" content="no" />
        <meta name="viewport" content="user-scalable=no, initial-scale=1, maximum-scale=1, minimum-scale=1, width=device-width" />
        <meta http-equiv="Content-Security-Policy" content="default-src * 'unsafe-inline'; style-src 'self' 'unsafe-inline'; media-src *" />
        <link rel="stylesheet" href="css/jquery.mobile-1.4.5.min.css">
        <script type="text/javascript" src="js/jquery.js"></script>
        <script  type="text/javascript" src="js/jquery.mobile-1.4.5.min.js"></script>
        <script type="text/javascript" charset="utf-8" src="cordova.js" ></script>
        <title>Hello World</title>
    
    <script type="text/javascript" charset="utf-8">
    function $$(id) {
        return document.getElementById(id);
    }
            var db;
            document.addEventListener('deviceready', onDeviceReady, false);
            function onDeviceReady(){
                var db = creatDatabase();
                createTable();
                queryData();
            }
    
     function creatDatabase(){
          db = openDatabase('Student', '1.0', 'StuManage', 2 * 1024 * 1024);
     }
    
     function createTable(){
    
    	if (db) {
            var strSQL = "create table if not exists StuInfo ";
            strSQL += " (StuID unique,Name text,Sex text,Score int)";
            db.transaction(function(tx) {
                tx.executeSql(strSQL)
            },
            function() {
                console.log("创建表错误");
            },
            function() {
                console.log("创建表成功");
            })
        }
    }
    
    
    function addData() {
        if (db) {
    
            var strSQL = "insert into StuInfo values";
            strSQL += "(?,?,?,?)";
            db.transaction(function(tx) {
                tx.executeSql(strSQL,[
    			    $$("txtStuID").value,$$("txtName").value,
    			    $$("selSex").value,$$("txtScore").value
    			],
    			function(){
    				$$("txtName").value="";
    	            $$("txtScore").value="";
    			    alert("成功增加1条记录!");
    			},
    			function(tx,ex){
    			     console.log(ex.message)
    			})
            })
    
        }
    
        queryData();
    }
    
    function queryData(){
        if(db){
            var sql = "select * from StuInfo";
             db.transaction(function(tx) {
                tx.executeSql(sql,[],
    			function(tx, results){
    				var len = results.rows.length,i;
    				var htmlData = "";
    				for(i = 0; i < len; i++){
    				    var item = results.rows.item(i);
    				    var htmlitem = item.StuID + " " + item.Name + " " + item.Sex + " " + item.Score;
    				    htmlData += htmlitem + "</br> ";
    
    				}
    				$$("info").innerHTML = htmlData;
    			},
    			function(tx,ex){
    			     console.log(ex.message)
    			})
            })
        }
    }
    
    function deleteData(){
        if (db) {
    
            var strSQL = "delete from StuInfo where StuID = ?";
            db.transaction(function(tx) {
                tx.executeSql(strSQL,[
    			    $$("txtStuID").value
    			],
    			function(){
    			    alert("成功删除1条记录!");
    			},
    			function(tx,ex){
    			     console.log(ex.message)
    			})
            })
    
        }
    
         queryData();
    }
    
    
        </script>
    </head>
    
    <body>
    <div id="page1" data-role="page" data-add-back-btn="true">
        <div data-role="content">
            <fieldset>
                <legend>新增学生资料</legend>
                <span class="spanl">
                学号:<input type="text" id="txtStuID" size="10"><br>
                姓名:<input type="text" id="txtName"  size="15">
                </span>
                <span>
                性别:<select id="selSex">
                  <option value="男">男</option>
                  <option value="女">女</option>
                </select><br>
                总分:<input type="text" id="txtScore"  size="8">
                </span>
                <p class="btn">
                    <input id="btnAdd" type="button" value="提交"  onClick="addData();">
                </p>
    
            </fieldset>
            <p id="info">显示结果</p>
            <input  type="button" value="删除记录"  onClick="deleteData();">
        </div>
    </div>
    
    </body>
    
    </html>
    

      

  • 相关阅读:
    HTTP和HTTPS协议
    Django后台缓存运用,提高并发
    Python用摘要算法生成token及检验token
    Django框架rest_framework中APIView的as_view()源码解析、认证、权限、频率控制
    跨域请求
    Django中的缓存机制
    Django框架之Auth模块
    Django框架之中间件、CSRF跨站请求伪造
    Django框架之Cookie和Session组件
    Django框架之Forms组件(基于注册功能)
  • 原文地址:https://www.cnblogs.com/linlf03/p/6657152.html
Copyright © 2011-2022 走看看