作者:心叶
时间:2018-04-30 15:44

前面说的IndexDB是索引型数据库,相对而言,不是真正的数据库,此处介绍的是关系型数据库,使用的方言是SQLlite。

温馨提示:目前很多浏览器都支持,不过这却是一个规范上被废弃的功能。

这里主要介绍的是下面三个方法:

1.openDatabase:这个方法使用现有数据库或新建数据库来创建数据库对象;

2.transaction:这个方法允许我们根据情况控制事务提交或回滚;

3.executeSql:这个方法用于执行SQL查询。

第一步:连接数据库。

var dataBase = openDatabase("hobby", "1.0", "个人业余爱好储存数据库", 1024 * 1024,
    function() {
        console.log('数据库创建成功');
    }
);

1.第一个参数代表数据库名称;

2.第二个参数代表版本号,目前为1.0;

3.第三个参数代表对数据库的描述;

4.第四个参数是用来设置数据的大小;

5.第五个参数是回调函数(可省略)。

openDatabase方法打开一个已经存在的数据库,如果数据库不存在,它还可以创建数据库

第二步:事务。

transaction方法用以处理事务,当一条语句执行失败的时候,整个事务回滚,方法包含三个参数:

1.包含事务内容的一个方法;

2.成功回调函数(可选);

3.失败回调函数(可选)。

dataBase.transaction(function(context){
    context.executeSql('sql语句一');
    context.executeSql('sql语句二');
    context.executeSql('sql语句三');
},function(){
    console.log('执行成功');
},function(){
    console.log('执行失败');
});
    

上面一共执行了三条sql语句,其中任何一条sql执行如果遇到错误,整个事务都会回滚。

第三步:执行SQL语句。

从上面的事务例子代码应该已经看出来,是在事务里面用executeSql方法来执行sql语句,其中有四个参数:

1.字符串类型的sql语句;

2.用以替换查询字符串中问号的参数,是一个数组;

3.执行成功回调函数(可选),返回两个参数:context和执行的结果;

4.执行失败回调函数(可选),context和失败的错误信息。

使用的SQL语言是SQLite,如果要创建表,执行对数据的增删改查,使用对应的sql语句就可以了。


心叶
304 声望114 粉丝

我还惊讶地意识到, 在我生命中有很多时刻, 每当我遇到一个遥不可及、令人害怕的情境,并感到惊慌失措时, 我都能够应付——因为我回想起了很久以前自己上过的那一课。