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 ...
随机推荐
- Python 3 并发编程多进程之进程池与回调函数
Python 3 进程池与回调函数 一.进程池 在利用Python进行系统管理的时候,特别是同时操作多个文件目录,或者远程控制多台主机,并行操作可以节约大量的时间.多进程是实现并发的手段之一,需要注意 ...
- Rabbitmq安装、集群与高可用配置
历史: RabbitMQ是一个由erlang开发的AMQP(Advanced Message Queue )的开源实现.AMQP 的出现其实也是应了广大人民群众的需求,虽然在同步消息通讯的世界里有很多 ...
- JS实现焦点图轮播效果
大家平时逛淘宝网的时候,在首页就能看到焦点图轮播的效果,就是这个样子的: PS:想起每每打开淘宝,总会被这个玩意先夺眼球,偶尔还去点进去溜溜,幸好我定力好,总能控制住自己的购买欲望,为自己不用剁手感到 ...
- TypeScript 照猫画虎
定义变量类型 const num: number = 1 定义函数参数类型 const init: (p: str) => void = function(param) { alert(para ...
- Python学习札记(二十五) 函数式编程6 匿名函数
参考:匿名函数 NOTE 1.Python对匿名函数提供了有限的支持. eg. #!/usr/bin/env python3 def main(): lis = list(map(lambda x: ...
- install diagnostic_updater
sudo apt-get install ros-kinetic-diagnostic-updater
- [javascript]javascript取得html元素,取得html样式,修改html样式
一.取得html元素 详情见:https://www.jb51.net/article/116460.htm 1.通过ID获取(getElementById) document.getElementB ...
- Aho-Corasick算法
2018-03-15 10:25:02 在计算机科学中,Aho–Corasick算法是由Alfred V. Aho和Margaret J.Corasick 发明的字符串搜索算法,用于在输入的一串字符串 ...
- Spring 及 SpringMVC的web.xml配置详解
出处http://blog.csdn.net/u010796790 1.spring 框架解决字符串编码问题:过滤器 CharacterEncodingFilter(filter-name) 2.在w ...
- ActiveRecord 惰性加载,和使用gem faker
rails console后: 2.1.4 :001 > User # => User (call 'User.connection' to establish a connection) ...