Phonegap-------Storage

phonegap的storage里大部分方法是用来处理数据存储的。其中包括数据库操作和本地存储。

其中,数据库部分,有一个Database对象。

一,方法openDatabase(创建一个新数据库或打开一个数据库)。

var database = window.openDatabase(database_name, database_version, database_displayname, database_size);

其中第一个参数为数据库的名称,第二个为数据库的版本,第三个为数据库的显示名称,第四个为数据库的大小。

返回值为一个Database对象。该对象下有两个方法: transaction 与 changeVersion。

二,方法transaction为数据库对象操纵数据时使用的方法。该方法有三个参数,分别为populateDB, errorCB, successCB。

第一个参数为具体包含数据库执行动作的方法。即里面可以执行一些数据库语句。该方法默认有一个参数,为执行数据库操作的对象。

样例:

function populateDB(tx) {
 tx.executeSql('DROP TABLE IF EXISTS DEMO');
 tx.executeSql('CREATE TABLE IF NOT EXISTS DEMO (id unique, data)');
 tx.executeSql('INSERT INTO DEMO (id, data) VALUES (1, "First row")');
 tx.executeSql('INSERT INTO DEMO (id, data) VALUES (2, "Second row")');
}


第二个参数为执行错误时候的方法。

第三个参数为执行成功时候的方法。

三,第三个重要的方法即为executeSql('数据库操作语句', [], querySuccess, errorCB);

第一个参数为要执行的数据库语句。与普通操纵数据库语句没太大区别。

第二个参数为一个数组对象,暂不明白有什么作用。

第三个参数为执行成功后,调用的方法。

第四个参数为执行错误时候调用的方法。

四,querrySuccess(tx, results)方法。(此函数名不为强制要求。仅仅是一个函数名)

第一个参数没有明确的说明,估计与上面的tx对象相同,即为操纵数据库的对象。

第二个参数为执行数据库成功后的结果对象。该对象有三个属性,insertId,rowsAffected,rows。

insertId为执行插入操作后,返回操作的行号。

rowsAffected为一number变量。即影响到数据库表中行的数量。如插入操作后,其为插入的行数,而查询操作后,其为0。

rows类型为object,其有两个属性:length与item。其多用于查询操作,返回查询到的数据。