在本地?cái)?shù)據(jù)庫(kù)中我們可以直接利用JavaScript創(chuàng)建數(shù)據(jù)庫(kù),并利用SQL語(yǔ)句執(zhí)行相關(guān)的數(shù)據(jù)庫(kù)操作。對(duì)于復(fù)雜的數(shù)據(jù)庫(kù),HTML5使用本地?cái)?shù)據(jù)庫(kù)進(jìn)行操作,需要的朋友可以參考下
下面分別介紹本地?cái)?shù)據(jù)庫(kù)的各個(gè)API及其使用方法。
1、利用openDatabase創(chuàng)建數(shù)據(jù)庫(kù)
我們可以利用openDatabase方法創(chuàng)建數(shù)據(jù)庫(kù)。openDatabase方法傳遞五個(gè)參數(shù),分別是:數(shù)據(jù)庫(kù)名、數(shù)據(jù)庫(kù)版本號(hào)(可省略)、對(duì)數(shù)據(jù)庫(kù)的描述、設(shè)置分配的數(shù)據(jù)庫(kù)的大小、回調(diào)函數(shù)。
如果我們要?jiǎng)?chuàng)建一個(gè)本地?cái)?shù)據(jù)庫(kù),可以執(zhí)行如下代碼:
var myWebDatabase = openDatabase(“user”, ”1.0”, “user info”, 1024*1024, function(){});
這樣就創(chuàng)建了一個(gè)用戶信息表。之后可以對(duì)創(chuàng)建的本地?cái)?shù)據(jù)庫(kù)是否成功進(jìn)行驗(yàn)證:
SQL Code
if(!dataBase){
alert(“The database has been created successfully!”);
}else{
alert(“The database has not been successfully created.”)
}if(!dataBase){
alert(“The database has been created successfully!”);
}else{
alert(“The database has not been successfully created.”)
}
2、利用executeSql方法執(zhí)行sql語(yǔ)句
使用executeSql方法,我們可以直接執(zhí)行正常的sql語(yǔ)句,如下:
context.executeSql(‘INSERT INTO testTable(id,name) VALUES (1,”Martin”)’);
當(dāng)然,這里只體現(xiàn)了executeSql的功能,并沒(méi)有確切說(shuō)明executeSql方法怎么用,用在哪里。要想使用該方法就必須介紹transaction。
3、利用transaction處理事務(wù)
該方法用來(lái)處理事務(wù),可以傳遞三個(gè)參數(shù):包含事務(wù)內(nèi)容的一個(gè)方法、執(zhí)行成功的回調(diào)函數(shù)、執(zhí)行失敗的回調(diào)函數(shù)(后兩者可以省略)。
結(jié)合transaction和executeSql,我們就可在我們之前創(chuàng)建的數(shù)據(jù)庫(kù)中添加創(chuàng)建數(shù)據(jù)表并添加數(shù)據(jù)了,代碼如下:
JavaScript Code
myWebDatabase.transaction(function (context) {
context.executeSql('CREATE TABLE IF NOT EXISTS testTable (id unique, name)');
context.executeSql('INSERT INTO testTable (id, name) VALUES (0, "Byron")');
context.executeSql('INSERT INTO testTable (id, name) VALUES (1, "Casper")');
context.executeSql('INSERT INTO testTable (id, name) VALUES (2, "Frank")');
});
sql語(yǔ)句的含義不多解釋,但從這里已經(jīng)可以很明白的看出如何在本地?cái)?shù)據(jù)庫(kù)中,想在一般數(shù)據(jù)庫(kù)中一樣創(chuàng)建數(shù)據(jù)庫(kù)數(shù)據(jù)表并添加數(shù)據(jù)了。
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助。