1. 程式人生 > >HBuilder webApp開發 Websql增刪改查操作

HBuilder webApp開發 Websql增刪改查操作

這段時間公司要求我們做原生iOS和安卓的都轉做H5開發APP,使用的工具HBuilder。公司這麼要求我們也就只能轉行做了。大家都是小白,好在公司有兩位H5大神,他們先給我們一些程式碼看看,所以,我們上手也比較快。在做APP的過程中用到了一些本地儲存,關於本地儲存大家可以看看《App離線本地儲存方案》 。裡面我只說說Web SQL,因為裡面的localstorageplus.storagewebsql都是我使用過的,其中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