国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > HTML > 正文

HTML5本地數(shù)據(jù)庫實例詳解

2020-03-24 16:00:38
字體:
供稿:網(wǎng)友
HTML5的Web SQL Databases(html5 本地數(shù)據(jù)庫)的確很誘惑人,當你發(fā)現(xiàn)可以用與mysql查詢一樣的查詢語句來操作本地數(shù)據(jù)庫時,你會發(fā)現(xiàn)這東西挺有趣的。今天,我們一起來了解HTML 5的Web SQL Database API:openDatabase、transaction、executeSql。Web SQL數(shù)據(jù)庫API實際上不是HTML5規(guī)范的組成部分,而是單獨的規(guī)范。它通過一套API來操縱客戶端的數(shù)據(jù)庫。Safari、Chrome、Firefox、Opera等主流瀏覽器都已經(jīng)支持Web SQL Database。HTML5的Web SQL Databases的確很誘惑人,當你發(fā)現(xiàn)可以用與mysql查詢一樣的查詢語句來操作本地數(shù)據(jù)庫時,你會發(fā)現(xiàn)這東西挺有趣的。今天,我們一起來了解HTML 5的Web SQL Database API。
下面將一一將介紹怎樣創(chuàng)建打開數(shù)據(jù)庫,創(chuàng)建表,添加數(shù)據(jù),更新數(shù)據(jù),刪除數(shù)據(jù),刪除表 。
先介紹三個核心方法
1、openDatabase:這個方法使用現(xiàn)有數(shù)據(jù)庫或創(chuàng)建新數(shù)據(jù)庫創(chuàng)建數(shù)據(jù)庫對象。
2、transaction:這個方法允許我們根據(jù)情況控制事務提交或回滾。
3、executeSql:這個方法用于執(zhí)行真實的SQL查詢。
第一步:打開連接并創(chuàng)建數(shù)據(jù)庫

代碼如下:

var dataBase = openDatabase( student , 1.0 , 學生表 , 1024 * 1024, function () { }); (!dataBase) { alert( 數(shù)據(jù)庫創(chuàng)建失敗!  alert( 數(shù)據(jù)庫創(chuàng)建成功! }

解釋一下openDatabase方法打開一個已經(jīng)存在的數(shù)據(jù)庫,如果數(shù)據(jù)庫不存在,它還可以創(chuàng)建數(shù)據(jù)庫。幾個參數(shù)意義分別是:
1,數(shù)據(jù)庫名稱。
2,版本號 目前為1.0,不管他,寫死就OK。
3,對數(shù)據(jù)庫的描述。
4,設(shè)置數(shù)據(jù)的大小。
5,回調(diào)函數(shù)(可省略)。
初次調(diào)用時創(chuàng)建數(shù)據(jù)庫,以后就是建立連接了。
創(chuàng)建的數(shù)據(jù)庫就存在本地,路徑如下:
C:/Users/Administrator/AppData/Local/Google/Chrome/User Data/Default/databases/http_localhost_4987 。
創(chuàng)建的是一個sqllite數(shù)據(jù)庫,可以用SQLiteSpy打開文件,可以看到里面的數(shù)據(jù)。SQLiteSpy是一個綠色軟件,可以百度一下下載地址或SQLiteSpy官方下載:SQLiteSpy。
第二步:創(chuàng)建數(shù)據(jù)表

代碼如下:

this.createTable=function() { dataBase.transaction( function(tx) { tx.executeSql(  create table if not exists stu (id REAL UNIQUE, name TEXT) , function(tx,result){ alert( 創(chuàng)建stu表成功 function(tx, error){ alert( 創(chuàng)建stu表失敗: + error.message); }

解釋一下,
executeSql函數(shù)有四個參數(shù),其意義分別是:
1)表示查詢的字符串,使用的SQL語言是SQLite 3.6.19。
2)插入到查詢中問號所在處的字符串數(shù)據(jù)。
3)成功時執(zhí)行的回調(diào)函數(shù)。返回兩個參數(shù):tx和執(zhí)行的結(jié)果。
4)一個失敗時執(zhí)行的回調(diào)函數(shù)。返回兩個參數(shù):tx和失敗的錯誤信息。
第三步:執(zhí)行增刪改查
1)添加數(shù)據(jù):

代碼如下:

this.insert = function () { dataBase.transaction(function (tx) { tx.executeSql( insert into stu (id, name) values(?, ?) , [id, 徐明祥 ], function () { alert( 添加數(shù)據(jù)成功 }, function (tx, error) { alert( 添加數(shù)據(jù)失敗: + error.message);  } ); });

2)查詢數(shù)據(jù)

代碼如下:

this.query = function () { dataBase.transaction(function (tx) { tx.executeSql( select * from stu , [], function (tx, result) { //執(zhí)行成功的回調(diào)函數(shù) //在這里對result 做你想要做的事情吧........... function (tx, error) { alert( 查詢失敗: + error.message); } );}

解釋一下
上面代碼中執(zhí)行成功的回調(diào)函數(shù)有一參數(shù)result。

result:查詢出來的數(shù)據(jù)集。其數(shù)據(jù)類型為 SQLResultSet ,就如同C#中的DataTable。
SQLResultSet 的定義為:

代碼如下:

interface SQLResultSet { readonly attribute long insertId; readonly attribute long rowsAffected; readonly attribute SQLResultSetRow rows; };

其中最重要的屬性—SQLResultSetRowList 類型的 rows 是數(shù)據(jù)集的“行” 。
rows 有兩個屬性:length、item 。
故,獲取查詢結(jié)果的某一行某一列的值 :result.rows[i].item[fieldname] 。

3)更新數(shù)據(jù)

代碼如下:

this.update = function (id, name) { dataBase.transaction(function (tx) { tx.executeSql(  update stu set name = ? where id= ? , [name, id], function (tx, result) { }, function (tx, error) { alert( 更新失敗: + error.message); }

4)刪除數(shù)據(jù)

代碼如下:

this.del = function (id) { dataBase.transaction(function (tx) { tx.executeSql(delete from stu where id= ? , [id], function (tx, result) { function (tx, error) { alert( 刪除失敗: + error.message);}

5)刪除數(shù)據(jù)表

代碼如下:

this.dropTable = function () { dataBase.transaction(function (tx) { tx.executeSql( drop table stu }

【相關(guān)推薦】

1. Html5免費視頻教程

2. H5制作一個計時器的代碼演示

3. H5完成多圖片上傳的實例詳解

4. 詳解H5的自定義屬性data-*

5. 教你如何實現(xiàn)一個H5微場景

以上就是HTML5本地數(shù)據(jù)庫實例詳解的詳細內(nèi)容,其它編程語言

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯(lián)系我們修改或刪除,多謝。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 千阳县| 武乡县| 潜江市| 太谷县| 松阳县| 土默特右旗| 临猗县| 荔波县| 和硕县| 五峰| 广汉市| 孟州市| 沙湾县| 大余县| 常山县| 郑州市| 顺昌县| 子长县| 江达县| 达尔| 洛川县| 教育| 独山县| 廉江市| 修水县| 闽侯县| 孟州市| 天峨县| 兴仁县| 繁昌县| 石阡县| 临漳县| 龙井市| 阜城县| 福建省| 承德县| 五家渠市| 青河县| 若尔盖县| 岑巩县| 什邡市|