原文地址: http://www.cnblogs.com/xumingxiang/archive/2012/03/25/2416418.html
Web SQL 数据库(详细网址:http://www.w3.org/TR/2008/WD-html5-20080610/structured.html)
Web SQL Database:数据库API(IE和firefox不支持)
HTML5数据库API:
openDatabase:使用现有数据库或创建新数据库的方式创建数据库对象。
transaction:允许用户根据情况控制事务提交或回滚。
executeSql:用于执行真实的SQL查询。
使用javascript脚本编写SQLLite数据库有两个必要的步骤:
创建访问数据库的对象。
使用事务处理。
1.创建或打开数据库openDatabase
使用openDatabase方法创建一个访问数据库的对象。
Database openDatabase(in DOMString name,in DOMString version,in DOMString displayName,in unsigned long estimatedSize,in optional DatabaseCallback creationCallback)
openDatabase()方法:可以打开已经存在的数据库,如果不存在则创建。
五个参数:数据库名,版本号,描述,数据库大小和创建回调。
注:要检测连接是否成功。
2.访问和操作数据库transaction
db.transction( function(tx){} )
transaction.executeSql( sqlquery,[],dataHandler,errorHandler )
扩展:执行executeSql后,dataHandler回调函数中有一个参数result。
result:查询出来的数据集。其数据类型为 SQLResultSet 。
SQLResultSet 的定义为:
interface SQLResultSet {
readonly attribute long insertId;
readonly attribute long rowsAffected;
readonly attribute SQLResultSetRowList rows;
};
insertId:是执行插入操作时,表示数据第几个插入到表中,插入多个数据时,返回最后一个数据对应的序号
rowsAffected:表示被影响的行数,例如,执行更新操作,更新了一个数据,那么它为1
rows:返回一个SQLResultSetRowList类型的数据
interface SQLResultSetRowList {
readonly attribute unsigned long length;
[IndexGetter] DOMObject item(in unsigned long index);
};
result.rows.length:返回每一行项目的数目
result.rows.item(0)[“id”] 或result.rows.item(0).id; :返回每一项