jarhf / websqlWrapper

让 websql 更易用

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

介绍

WebsqlWrapper是一个简化websql操作的javascript库,在BSD协议下开源发布。

WebsqlWrapper名称的来历: websql 包装器。

此库的所有操作都是异步的,虽然websql提供同步操作接口,但为了UI考虑,本库暂时只提供异步操作



如何使用

在html中引用websqlwrapprjs

"websqlwrapper.js"

1、建立数据库

注意:建立数据库是同步操作

var db = WebsqlWrapper({
          name: 'demoDB'
        , displayName:'demoDB1'
        , version:1
    });

或,以传统方式new一个数据库出来

var db = new WebsqlWrapper({
          name: 'demoDB'
        , displayName:'demoDB1'
        , version:1
    });

2、建立一张数据表名为demo数据表

第一个参数是表名,第二个参数即字段对象,键/值形式,值代表字段对应的类型限制

demoReady 为建立数据表成功后的回调

db.define('demo', {id:'INTEGER UNIQUE', message:'TEXT NOT NULL', num: 'FLOAT'}, demoReady);

3、操作数据表

在demoReady回调中,就可进行对表进行操作了

操作数据表,首先得获得一个数据表的实例

var table = db.instance('demo');

保存一条数据, save: 更新或插入

注意:需要传第二个参数key

table.save({id: 1, message: 'helloworld', num: 123456}, 'id');

插入数据, insert: 更新或插入

注意:由于我们设置了id字段为unique所以当程序执行第二遍时控制台会输出错误信息

table.insert({id: 2, message: 'fuckworld', num: 123});
        table.insert({id: 3, message: 'hi', num: 123});

更新数据, update

注意:需要传第二个参数key

table.update({id: 2, message: 'fuckworld-updated', num: 123}, 'id');

获取数据, get

table.get('num === 123', function(r){
        	console.log('查询数据: ', r);
        });





SQL语句执行函数, query

db.query('SELECT * FROM demo', function(r){
        	console.log('查询结果: ', r);
        });

批处理操作, batch

可以定义一个数组,数组项为需要操作的数据库命令,来批处理操作,列如:一次性插入,更新,删除,保存等操作

注意:在本库中,暂时所有的数据库API都只提供异步操作,所以在处理多条数据操作时此命令特别重要,等所有命令处理完后即可以回调中放心继续其它操作


	// 定义一个命令数组
		var arr = [
        	  {type: 'save', args: [{id: 4, message: 'my name is lilei11', num: 207}, 'id', function(){ console.log('save finished'); }]}
            , {type: 'save', args: [{id: 5, message: 'my name is hameimei', num: 201}, 'id']}
            , {type: 'query', args: ['SELECT * FROM demo where id = ?', [1], function(){ console.log('query finished'); }]}            
        ];
		// table批处理
        table.batch(arr);
        });
    //db的批处理
    var arr2 = [
         {type: 'save', args: ['demo', {id: 5, message: 'my name is hameimei', num: 201}, 'id', function(){ console.log('save finished'); }]}  //除了query之外方法,args数组第一个元素是tableName
       , {type: 'query', args: ['SELECT * FROM demo where id = ?', [1], function(){ console.log('query finished'); }]}      
    ];
    db.batch(arr2);


About

让 websql 更易用


Languages

Language:JavaScript 71.0%Language:HTML 29.0%