首页 > 代码库 > PhoneGap下Web SQL实践

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 htmlDatahttp://www.mamicode.com/= "";				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="http://www.mamicode.com/css/jquery.mobile-1.4.5.min.css">    <script type="text/javascript" src="http://www.mamicode.com/js/jquery.js"></script>    <script  type="text/javascript" src="http://www.mamicode.com/js/jquery.mobile-1.4.5.min.js"></script>    <script type="text/javascript" charset="utf-8" src="http://www.mamicode.com/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 htmlDatahttp://www.mamicode.com/= "";				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="http://www.mamicode.com/男">男</option>              <option value="http://www.mamicode.com/女">女</option>            </select><br>            总分:<input type="text" id="txtScore"  size="8">            </span>            <p class="btn">                <input id="btnAdd" type="button" value="http://www.mamicode.com/提交"  onClick="addData();">            </p>        </fieldset>        <p id="info">显示结果</p>        <input  type="button" value="http://www.mamicode.com/删除记录"  onClick="deleteData();">    </div></div></body></html>

  

 

PhoneGap下Web SQL实践