HTML5 Web SQL
Web Sql Database,中文翻譯作“本地數(shù)據(jù)庫”,是隨著HTML5規(guī)范加入的在瀏覽器端運行的輕量級數(shù)據(jù)庫。
在HTML5中,大大豐富了客戶端本地可以存儲的內(nèi)容,添加了很多功能來將原本必須保存在服務(wù)器上的數(shù)據(jù)轉(zhuǎn)為保存在客戶端本地,從而大大提高了Web應(yīng)用程序的性能,減輕了服務(wù)器端的負(fù)擔(dān),使Web時代重新回到了“客戶端為重,服務(wù)器為輕”的時代。 在這其中,一項非常重要的功能就是數(shù)據(jù)庫的本地存儲功能。在HTML5中內(nèi)置了一個可以通過SQL語言來訪問的數(shù)據(jù)庫。在HTML4中,數(shù)據(jù)庫只能放在服務(wù)器端,只能通過服務(wù)器來訪問數(shù)據(jù)庫,但是在HTML5中,可以就像訪問本地文件那樣輕松的對內(nèi)置的數(shù)據(jù)庫進(jìn)行直接訪問。現(xiàn)在,像這種不需要存儲在服務(wù)器上的,被稱為“SQLite”的文件型SQL數(shù)據(jù)庫已經(jīng)得到了很廣泛的利用,所以HTML5中也采用了這種數(shù)據(jù)庫來作為本地數(shù)據(jù)庫。 Html5數(shù)據(jù)庫它包含三個核心方法: 1.openDatabase:這個方法使用現(xiàn)有數(shù)據(jù)庫或新建數(shù)據(jù)庫來創(chuàng)建數(shù)據(jù)庫對象2.transaction:這個方法允許我們根據(jù)情況控制事務(wù)提交或回滾3.executeSql:這個方法用于執(zhí)行SQL 的操作 executeSql函數(shù)有四個參數(shù),其意義分別是:
1)表示查詢的字符串,使用的SQL語言是SQLite 3.6.19。
2)插入到查詢中問號所在處的字符串?dāng)?shù)據(jù)。
3)成功時執(zhí)行的回調(diào)函數(shù)。返回兩個參數(shù):fx和執(zhí)行的結(jié)果。
4)一個失敗時執(zhí)行的回調(diào)函數(shù)。返回兩個參數(shù):fx和失敗的錯誤信 息
1、打開數(shù)據(jù)庫或者創(chuàng)建數(shù)據(jù)庫
//創(chuàng)建數(shù)據(jù)庫 -有該數(shù)據(jù)庫就打開,沒有則是新建var database=openDatabase('emp','1.0','員工資料管理',1024*1024,function(){});if(!database){//通過databse 判斷是否創(chuàng)建或則打開成功alert('創(chuàng)建/打開失敗')}else{alert('創(chuàng)建/打開成功')}openDatabasek中五個參數(shù)分別為:數(shù)據(jù)庫名、版本號、描述、數(shù)據(jù)庫大小、創(chuàng)建回調(diào)。創(chuàng)建回調(diào)沒有也可以創(chuàng)建數(shù)據(jù)庫。
?
2、創(chuàng)建表
function creater_sql(){// - 創(chuàng)建表database.transaction(function(fx){fx.executeSql("create table if not exists stu(s_name TEXT,s_score INT,s_golds INT)",[],function(fx,result){alert('創(chuàng)建成功')},//返回狀態(tài) --成功function(fx,error){alert('創(chuàng)建失敗')}//返回狀態(tài) --失敗 )}); }3、插入數(shù)據(jù)
function insert(){// - 插入數(shù)據(jù)database.transaction(function(fx){fx.executeSql("insert into stu(s_name,s_score,s_golds) values(?,?,?)",[name,sec1,s_gold],// ['李四',1000,1],function(){alert('執(zhí)行成功')},//返回狀態(tài) --成功function(fx,e){alert('失敗');alert(e)})//返回狀態(tài) --失敗 });}4、查詢數(shù)據(jù)
function select(){//查詢數(shù)據(jù)database.transaction(function(fx){fx.executeSql("select * from stu",[],function(fx,result){alert('查詢成功');for(var i=0;i< result.rows.length;i++){alert(result.rows.item(i).s_name);}},function(fx,e){alert('查詢失敗');})});}result是查詢到的結(jié)果集,其中最重要的屬性—SQLResultSetRowList 類 型的 rows 是數(shù)據(jù)集的“行” 。
rows 有兩個屬性:length、item 。
length代表總條數(shù),用item(num),可訪問 到具體的行
5、刪除
//刪除數(shù)據(jù)表 dataBase.transaction(function (fx) { fx.executeSql('drop table stu'); });//刪除數(shù)據(jù)庫 dataBase.transaction(function (fx) { fx.executeSql('drop database stu'); });?
轉(zhuǎn)載于:https://www.cnblogs.com/bruce-gou/p/5228242.html
總結(jié)
以上是生活随笔為你收集整理的HTML5 Web SQL的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: EntityFreamWork 项目总结
- 下一篇: HTML和URL比较