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>
PhoneGap下Web SQL实践的更多相关文章
- Phonegap下localStorage使用实践
HTML5的Web Storage API提供了两种客户端存储数据的方法 localStorage和sessionStorage. localStorage没有时间限制,程序升级也不会消失,可以满足持 ...
- Java JDBC下执行SQL的不同方式、参数化预编译防御
相关学习资料 http://zh.wikipedia.org/wiki/Java数据库连接 http://lavasoft.blog.51cto.com/62575/20588 http://blog ...
- 20155326《网路对抗》Exp8 WEB基础实践
20155326<网路对抗>Exp8 WEB基础实践 实践内容 (1).Web前端HTML(0.5分) 能正常安装.启停Apache.理解HTML,理解表单,理解GET与POST方法,编写 ...
- 20145236《网络对抗》Exp8 WEB基础实践
20145236<网路对抗>Exp8 WEB基础实践 一.基础问题回答 什么是表单 表单在网页中主要负责数据采集功能 一个表单有三个基本组成部分: 表单标签 表单域:包含了文本框.密码框. ...
- 20155206 Exp8 WEB基础实践
20155206 Exp8 WEB基础实践 基础问题回答 (1)什么是表单 表单在网页中主要负责数据采集功能. 一个表单有三个基本组成部分: 表单标签:这里面包含了处理表单数据所用CGI程序的URL以 ...
- 20155210 Exp8 WEB基础实践
Exp8 WEB基础实践 Apache环境配置 apache是kali下的web服务器,通过访问ip地址+端口号+文件名称可以打开对应的网页. 输入命令vi /etc/apache2/ports.co ...
- 20155216 Exp8 WEB基础实践
Exp8 WEB基础实践 实践内容 Apache环境配置 apache是kali下的web服务器,通过访问 ip地址+端口号+文件名称 打开对应的网页. 输入命令 vi /etc/apache2/po ...
- 20155223 Exp8 WEB基础实践
20155223 Exp8 WEB基础实践 基础问题回答 什么是表单? 表单是一个包含表单元素的区域. 表单元素是允许用户在表单中(比如:文本域.下拉列表.单选框.复选框等等)输入信息的元素. 表单使 ...
- 20155317王新玮《网络对抗技术》实验8 WEB基础实践
20155317王新玮<网络对抗技术>实验8 WEB基础实践 一.实验准备 1.0 实验目标和内容 Web前端HTML.能正常安装.启停Apache.理解HTML,理解表单,理解GET与P ...
随机推荐
- constructor-arg和property的区别
两者都是给bean注入属性,区别: constructor-arg:通过构造函数注入. property:通过setter对应的方法注入. 详情见:https://blog.csdn.net/u012 ...
- Dijkstra算法补分
要求 Dijkstra算法,求解附图顶点A的单源最短路径 在纸上画出求解过程,上传截图(注意图上要有自己的学号和姓名) 过程
- 解决应用程序无法正常启动0xcxxxxxxxxxx问题
简述:使用VS2008写了一个MFC程序,结果传到别人的机子上(WIN7)出现应用程序正常初始化(0xc0150002)失败的问题.为什么我的机子上可以,而别人的机子上运行不了呢?下面是我找到的一个解 ...
- HDU 4745 Two Rabbits(最长回文子序列)
http://acm.hdu.edu.cn/showproblem.php?pid=4745 题意: 有一个环,现在有两只兔子各从一个点开始起跳,一个沿顺时针,另一个沿逆时针,只能在一圈之内跳,并且每 ...
- python 输出两个日期之间的天数
from datetime import date f_date = date(, , ) l_date = date(, , ) delta = l_date - f_date print(delt ...
- 2018-2019-2 20165332《网络攻防技术》Exp5 MSF基础应用
2018-2019-2 20165332<网络攻防技术>Exp5 MSF基础应用 1.基础问题回答 用自己的话解释什么是exploit,payload,encode. exploit:就是 ...
- 转:Tomcat 7.0配置SSL的问题及解决办法
原文:https://dong-shuai22-126-com.iteye.com/blog/1830209
- windows下的IO模型之完成端口
本文整理于:http://blog.csdn.net/piggyxp/article/details/6922277 一. 完成端口的优点 完成端口会充分利用Windows内核来进行I/O的调度,是用 ...
- js使用post 方式打开新窗口,隐藏Url参数
要想在地址栏隐藏url传递的参数,不能直接隐藏,但有几下几个变通的方法. 使用类似Base64编码,将URL参数进行简单加密. 使用框架页; 使用POST方式传递数据; 使用Cookie传递数据; 下 ...
- asp.net验证码图片生成示例
验证码,一个很常见的东西.不管你是使用者还是开发者,这个东西80%的人都见到过,但是之前有人给我说过这么一句话“内行看门道,外行看热闹!”,仔细琢磨一下还真的是那么一回事.对于怎么实现验证码,闲话不多 ...