1.打开和创建数据库
初次打开一个数据库,就会自动创建一个数据库。在任何时间,该域只能拥有指定数据库的一个版本。打开和创建数据库必须使用openDatabase方法来创建一个访问数据库的对象。该方法的使用方法如下:
vardb=openDatabase('db','1.0','firstdatabase',2*1024*1024);
该方法使用4个参数,第一个参数为数据库名,第二个参数为版本号,第三个参数为对数据库的描述,第四个参数为数据库的大小。该方法返回创建后的数据库访问对象,如果该数据库不存在,则创建该数据库。
为了确保应用程序有效,应该检测对WebSQL数据库API的支持,还应该测试浏览器对数据库的支持。测试代码如下:
2.创建数据表
实际访问数据库的时候,还需要使用transaction方法,以执行事务处理。使用事务处理,可以防止在对数据库访问时或数据库在执行相关操作时受到外界的干扰。因为在Web上会有许多人同时对页面进行访问,如果在访问数据库的过程中,正在操作的数据被别的用户修改掉的话,会引起很多意想不到的后果。因此可以使用事务处理(transaction)来达到在数据库操作完成之前,阻止别的用户访问数据库。
transaction的使用方法如下:
transaction方法使用一个回调函数为参数。在这个函数中,执行访问数据库的语句。
要创建数据表(以及数据库上的任何其他事务),必须启动一个数据库“事务”,并且在回调中创建该表。事务回调接受一个参数,其中包含了事务对象,这就是允许运行SQL语句并且运executeSql方法(在下面的例子中,就是tx)的内容。这通过使用从openDatabase返回的数据库对象来完成,这种调用事务的方法如下:
3.插入和查询数据
transaction回调函数使用了作为参数传递给回调函数transaction对象的executeSql方法。executeSql方法的完整定义如下: (www.xing528.com)
transaction.executeSql(sqlquery,[],dataHandler,errorHandler);
(1)第一个参数为需要执行的SQL语句。
(2)第二个参数为SQL语句中所有使用到的参数的数组。在executeSql方法中,将SQL语句所要使用到的参数先用“?”代替,然后依次将这些参数组成数组放在第二个参数中,代码如下:
transaction.executeSql("UPDATE user set age=? where name=?;",[age,name]);
(3)第三个参数为执行SQL语句成功时调用的回调函数。该回调函数的传递方法如下:
functiondataHandler(transaction,results){//执行SQL语句成功时的处理}
该回调函数使用两个参数,第一个参数为transaction对象,第二个参数为执行查询操作时返回的查询到的结果数据集对象。
(4)第四个参数为执行SQL语句出错时调用的回调函数。该回调函数的传递方法如下:
functionerrorHandler(transaction,errmsg){//执行SQL语句出错时的处理};
该回调函数使用两个参数,第一个参数为transaction对象,第二个参数为执行发生错误时的错误信息文字。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。