HBuilder webApp開發 Websql增刪改查操作
這段時間公司要求我們做原生iOS和安卓的都轉做H5開發APP,使用的工具HBuilder。公司這麼要求我們也就只能轉行做了。大家都是小白,好在公司有兩位H5大神,他們先給我們一些程式碼看看,所以,我們上手也比較快。在做APP的過程中用到了一些本地儲存,關於本地儲存大家可以看看《App離線本地儲存方案》 。裡面我只說說Web SQL,因為裡面的localstorage,plus.storage和websql都是我使用過的,其中localstorage和plus.storage是以鍵值對的形式儲存,操作比較簡單,但是websql操作資料庫就有點不一樣了,這個我也是搞了一天才除錯好。
在使用HBuilder
介面
資料庫的操作
增刪改查基本就是我們操作資料庫的四個最基本的操作了。
介面按鈕的操作步驟:
新建資料庫–>插入資料–>查詢一條資料–>修改資料–>查詢一條資料–>查詢全部資料–>刪除一條資料–>刪除全部資料。
[LOG] : 新建資料庫
[LOG] : 插入資料
[LOG] : 插入websqlTable小明成功
[LOG ] : 插入websqlTable小紅成功
[LOG] : 插入websqlTable小強成功
[LOG] : 查詢一條資料
[LOG] : NAME = 小明
[LOG] : AGE = 18
[LOG] : HEIGHT = 175cm
[LOG] : WEIGTH = 60kg
[LOG] : 修改資料
[LOG] : 查詢一條資料
[LOG] : NAME = 小明
[LOG] : AGE = 1000 /*修改之後的結果*/
[LOG] : HEIGHT = 175cm
[LOG] : WEIGTH = 60kg
[LOG] : 查詢全部資料
[LOG] : NAME = 小明
[LOG] : AGE = 1000
[LOG] : HEIGHT = 175cm
[LOG] : WEIGTH = 60kg
[LOG] : -------- 我是分割線 -------
[LOG] : NAME = 小紅
[LOG] : AGE = 17
[LOG] : HEIGHT = 160cm
[LOG] : WEIGTH = 45kg
[LOG] : -------- 我是分割線 -------
[LOG] : NAME = 小強
[LOG] : AGE = 19
[LOG] : HEIGHT = 185cm
[LOG] : WEIGTH = 70kg
[LOG] : -------- 我是分割線 -------
websql.js檔案:
/**
*資料庫操作輔助類,定義物件、資料操作方法都在這裡定義
*/
var dbname='websql';/*資料庫名*/
var version = '1.0'; /*資料庫版本*/
var dbdesc = 'websql練習'; /*資料庫描述*/
var dbsize = 2*1024*1024; /*資料庫大小*/
var dataBase = null; /*暫存資料庫物件*/
/*資料庫中的表單名*/
var websqlTable = "websqlTable";
/**
* 開啟資料庫
* @returns dataBase:開啟成功 null:開啟失敗
*/
function websqlOpenDB(){
/*資料庫有就開啟 沒有就建立*/
dataBase = window.openDatabase(dbname, version, dbdesc, dbsize,function() {});
if (dataBase) {
alert("資料庫建立/開啟成功!");
} else{
alert("資料庫建立/開啟失敗!");
}
return dataBase;
}
/**
* 新建資料庫裡面的表單
* @param tableName:表單名
*/
function websqlCreatTable(tableName){
// chinaAreaOpenDB();
var creatTableSQL = 'CREATE TABLE IF NOT EXISTS '+ tableName + ' (rowid INTEGER PRIMARY KEY AUTOINCREMENT, NAME text,AGE text,HEIGHT text,WEIGTH text)';
dataBase.transaction(function (ctx,result) {
ctx.executeSql(creatTableSQL,[],function(ctx,result){
alert("表建立成功 " + tableName);
},function(tx, error){
alert('建立表失敗:' + tableName + error.message);
});
});
}
/**
* 往表單裡面插入資料
* @param tableName:表單名
* @param NAME:姓名
* @param AGE:年齡
* @param HEIGHT:身高
* @param WEIGTH:體重
*/
function websqlInsterDataToTable(tableName,NAME,AGE,HEIGHT,WEIGTH){
var insterTableSQL = 'INSERT INTO ' + tableName + ' (NAME,AGE,HEIGHT,WEIGTH) VALUES (?,?,?,?)';
dataBase.transaction(function (ctx) {
ctx.executeSql(insterTableSQL,[NAME,AGE,HEIGHT,WEIGTH],function (ctx,result){
console.log("插入" + tableName + NAME + "成功");
},
function (tx, error) {
alert('插入失敗: ' + error.message);
});
});
}
/**
* 獲取資料庫一個表單裡面的所有資料
* @param tableName:表單名
* 返回資料集合
*/
function websqlGetAllData(tableName){
var selectALLSQL = 'SELECT * FROM ' + tableName;
dataBase.transaction(function (ctx) {
ctx.executeSql(selectALLSQL,[],function (ctx,result){
alert('查詢成功: ' + tableName + result.rows.length);
var len = result.rows.length;
for(var i = 0;i < len;i++) {
console.log("NAME = " + result.rows.item(i).NAME);
console.log("AGE = " + result.rows.item(i).AGE);
console.log("HEIGHT = " + result.rows.item(i).HEIGHT);
console.log("WEIGTH = " + result.rows.item(i).WEIGTH);
console.log("-------- 我是分割線 -------");
}
},
function (tx, error) {
alert('查詢失敗: ' + error.message);
});
});
}
/**
* 獲取資料庫一個表單裡面的部分資料
* @param tableName:表單名
* @param name:姓名
*/
function websqlGetAData(tableName,name){
var selectSQL = 'SELECT * FROM ' + tableName + ' WHERE NAME = ?'
dataBase.transaction(function (ctx) {
ctx.executeSql(selectSQL,[name],function (ctx,result){
alert('查詢成功: ' + tableName + result.rows.length);
var len = result.rows.length;
for(var i = 0;i < len;i++) {
console.log("NAME = " + result.rows.item(i).NAME);
console.log("AGE = " + result.rows.item(i).AGE);
console.log("HEIGHT = " + result.rows.item(i).HEIGHT);
console.log("WEIGTH = " + result.rows.item(i).WEIGTH);
}
},
function (tx, error) {
alert('查詢失敗: ' + error.message);
});
});
}
/**
* 刪除表單裡的全部資料
* @param tableName:表單名
*/
function websqlDeleteAllDataFromTable(tableName){
var deleteTableSQL = 'DELETE FROM ' + tableName;
localStorage.removeItem(tableName);
dataBase.transaction(function (ctx,result) {
ctx.executeSql(deleteTableSQL,[],function(ctx,result){
alert("刪除表成功 " + tableName);
},function(tx, error){
alert('刪除表失敗:' + tableName + error.message);
});
});
}
/**
* 根據name刪除資料
* @param tableName:表單名
* @param name:資料的姓名
*/
function websqlDeleteADataFromTable(tableName,name){
var deleteDataSQL = 'DELETE FROM ' + tableName + ' WHERE NAME = ?';
localStorage.removeItem(tableName);
dataBase.transaction(function (ctx,result) {
ctx.executeSql(deleteDataSQL,[name],function(ctx,result){
alert("刪除成功 " + tableName + name);
},function(tx, error){
alert('刪除失敗:' + tableName + name + error.message);
});
});
}
/**
* 根據name修改資料
* @param tableName:表單名
* @param name:姓名
* @param age:年齡
*/
function websqlUpdateAData(tableName,name,age){
var updateDataSQL = 'UPDATE ' + tableName + ' SET AGE = ? WHERE NAME = ?';
dataBase.transaction(function (ctx,result) {
ctx.executeSql(updateDataSQL,[age,name],function(ctx,result){
alert("更新成功 " + tableName + name);
},function(tx, error){
alert('更新失敗:' + tableName + name + error.message);
});
});
}
html檔案:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />
<meta name="apple-mobile-web-app-capable" content="yes">
<meta name="apple-mobile-web-app-status-bar-style" content="black">
<title></title>
<script type="text/javascript" src="../../js/websql.js" ></script>
</head>
<script>
function creatTable() {
console.log("新建資料庫");
websqlOpenDB();
websqlCreatTable(websqlTable);
}
function insterData() {
console.log("插入資料");
websqlInsterDataToTable(websqlTable,"小明","18","175cm","60kg");
websqlInsterDataToTable(websqlTable,"小紅","17","160cm","45kg");
websqlInsterDataToTable(websqlTable,"小強","19","185cm","70kg");
}
function updateData() {
console.log("修改資料");
websqlUpdateAData(websqlTable,"小明","1000")
}
function deleteAData() {
console.log("刪除一條資料");
websqlDeleteADataFromTable(websqlTable,"小明");
}
function deleteAllData() {
console.log("刪除全部資料");
websqlDeleteAllDataFromTable(websqlTable);
}
function selectAData() {
console.log("查詢一條資料");
websqlGetAData(websqlTable,"小明");
}
function selectALlData() {
console.log("查詢全部資料");
websqlGetAllData(websqlTable);
}
</script>
<style>
.content {
padding-top: 50px;
}
.websql {
margin-top: 10px;
}
/*設定按鈕樣式*/
.websql button{
height: 44px;
width: 120px;
}
</style>
<body>
<div class="content">
<div class="websql">
<button type="button" onclick="creatTable()">新建資料庫</button>
</div>
<div class="websql">
<!--增-->
<button type="button" onclick="insterData()">插入資料</button>
</div>
<div class="websql">
<!--刪-->
<button type="button" onclick="deleteAData()">刪除一條資料</button>
<button type="button" onclick="deleteAllData()">刪除全部資料</button>
</div>
<div class="websql">
<!--改-->
<button type="button" onclick="updateData()">修改資料</button>
</div>
<div class="websql">
<!--查-->
<button type="button" onclick="selectAData()">查詢一條資料</button>
<button type="button" onclick="selectALlData()">查詢全部資料</button>
</div>
</div>
</body>
</html>
總結
在使用websql的時候,就是操作資料庫sql的操作,操作的sql語句也是一樣的。前後接觸過CoreDate,FMDB,sqlite3和websql,使用的sql語句都是一樣的,只是不同的平臺和封裝導致具體的使用有些不一致。《【iOS】一種仿京東搜尋歷史記錄的表格的實現(sqlite3的使用)》
這裡有操作CoreDate,FMDB,sqlite3的介紹。
相關推薦
HBuilder webApp開發 Websql增刪改查操作
這段時間公司要求我們做原生iOS和安卓的都轉做H5開發APP,使用的工具HBuilder。公司這麼要求我們也就只能轉行做了。大家都是小白,好在公司有兩位H5大神,他們先給我們一些程式碼看看,所以,我們上手也比較快。在做APP的過程中用到了一些本地儲存,關於本地儲
【Mac系統 + Python + Django】之開發一個釋出會系統【Django模型(二)】 【Mac系統 + Mysql】之安裝Mysql資料庫 【Python + Mysql】之用pymysql庫連線Mysql資料庫並進行增刪改查操作
上一部分給大家介紹Django的檢視。 接下來繼續來了解Django框架,來看第二部分,此部分是對資料庫的操作。 目錄: 一、設計系統表 二、admin後臺管理 三、基本資料訪問(SQLite資料庫) 四、Django配置MySQL &
利用反射實現對sqlite3資料庫的crud(增刪改查)操作的一個baseAndroidDao封裝,安卓開發中
1.說明 博主主要是做java web後臺這一塊,但是偶爾做點安卓,發現安卓上沒有像Hibernate這種orm框架(....其實也沒有去找), 又覺得每次增刪改查都自己寫程式碼的話肯定是非常麻煩的,所以就寫了一個簡單的baseAndroidDao來封裝一些簡單的增刪改查操
MongoDB增刪改查操作詳解
添加多個 負數 指定 cal lib 定位 也會 pan str 一、插入 MongoDB的插入操作很簡單,使用insert方法,這裏演示從創建數據庫、創建集合到插入文檔、查詢文檔。 集合創建方法參數說明: size:集合最大空間 max:集合最多文檔數量 (超出si
JqueryEasyUI實現CRUD增刪改查操作
per queryall call .get field string cal upd wid 1.代碼介紹: 前端界面由jsp,JqueryEasyUI制作,後臺代碼由Servlet實現邏輯操作 註:JqueryEasyUI的庫文件和其他自己jar包自己導入。Jquery
(六)Hibernate的增刪改查操作(2)
rac result jlist static 面向 原生 comm public set 一、在Hibernate中使用原生SQL語句 sql語句面向的是數據庫,所以sql語句中對應的不再是bean了,比如sql="select * from user" 在hql中
Scala對MongoDB的增刪改查操作
自動 back localhost sts hive comm dbo 用戶 hashmap =========================================== 原文鏈接: Scala對MongoDB的增刪改查操作 轉載請註明出處! ======
使用logging模塊實現對文件增刪改查操作的紀錄(low B版)
文件 time *** tle () handle 函數賦值 增刪改查操作 info #!/usr/bin/env python#對之前文件進行的增刪改查操作實現日誌操作,日誌輸出用戶進行過的操作。#!/usr/bin/env pythondef log(): imp
簡單的JDBC的增刪改查操作,附源碼
mysql 小白 http .exe let ext 打印 編譯 sdn 1 package com.xyyz.jdbc; 2 3 import java.sql.Connection; 4 import java.sql.DriverManager;
簡單的JDBC的增刪改查操作->抽取了基類,附源碼
exceptio tac catch main trace 工具 nload null user 1.主程序 1 package com.xyyz.jdbc; 2 3 import java.sql.Connection; 4 import java.sql.D
作業員工信息表實現增刪改查操作
nbsp 手機號 add bre mark 作業 ket split 格式不正確 有以下員工信息表 當然此表你在文件存儲時可以這樣表示 1 1,Alex Li,22,13651054608,IT,2013-04-01 現需要對這個員工
偏於SQL語句的 sqlAlchemy 增刪改查操作
select 比較 esc nec 第一個 映射 webp char 定義 ORM 江湖 曾幾何時,程序員因為懼怕SQL而在開發的時候小心翼翼的寫著sql,心中總是少不了恐慌,萬一不小心sql語句出錯,搞壞了數據庫怎麽辦?又或者為了獲取一些數據,什麽內外左右連接,函數存
JavaWeb程序利用Servlet的對SQLserver增刪改查操作
tag struct 連接失敗 -1 rop quest map rom stream 聲明:學了幾天終於將增刪改查的操作掌握了,也發現了一些問題,所以總結一下. 重點:操作數據庫主要用的是SQL語句跟其他無關. 一:前提知識:PreparedStatement
通過用戶模型,對數據庫進行增刪改查操作
tab 接受 ssi fig app lte str 程序 ask 增加:db.session.add(user)db.session.commit() 查詢:User.query.filter(User.username == ‘mis1114‘).first() 修改:
通過用戶模型,對數據庫進行增刪改查操作。
lte integer fig 用戶 run __name__ bsp model table from flask import Flask from flask_sqlalchemy import SQLAlchemy import config app = Fla
java連接mysql以及增刪改查操作
while sql mysq stmt values url text tin lose java連接數據庫的代碼基本是固定的,步驟過程覺得繁瑣些,代碼記起來對我來說是鬧挺。直接上代碼: (溫馨提醒:你的項目提前導入連接數據庫的jar包才有的以下操作 ) 1 clas
python文件 的增刪改查操作
write end with family 如果 bsp 之前 文件的 但是 文件的讀寫 (重點) # f=open("500 Miles",encoding="utf-8").read() # f=open("500 Miles",,“a”encoding="utf-8"
MySQL數據庫學習【第三篇】增刪改查操作
自增id 命令 位置參數 modify 刪除一行 style 主鍵 客戶端 drop 註意:1.如果你在cmd中書命令的時候,輸入錯了就用\c跳出 2.\s查看配置信息 一、操作文件夾(庫) 增:create database db1 charset utf8;
簡單的增刪改查操作命令
區別 命名 兩個 integer pan 數據庫 add 希望 robert 刪除 DELETE FROM (數據庫的哪一個表)USER WHRER ID=(條件)2; 插入 INSERR INTO (數據庫的哪一個表)USER VALUES(數據); 查找 SEL
SAP雲平臺以微服務的方式提供了Document的CRUD(增刪改查)操作。該微服務基於標準的CMI
SAP. SCP SAP雲平臺 DocumentService 微服務 SAP雲平臺以微服務的方式提供了Document的CRUD(增刪改查)操作。該微服務基於標準的CMIS協議(Content Management Interoperability Service)。 同標準的CMI