apicloud中的sqlite操作模块db

db 模块封装了手机常用数据库 sqlite 的增删改查语句,可实现数据的本地存储,极大的简化了数据持久化问题。

1.执行

var db = api.require('db');
db.executeSql({
    name: 'db_name',
    sql: 'CREATE TABLE Persons(Id_P int, LastName varchar(255), FirstName varchar(255), Address varchar(255), City varchar(255))'
}, function(ret, err) {
    if (ret.status) {
        alert(JSON.stringify(ret));
    } else {
        alert(JSON.stringify(err));
    }
});

执行案例

function dbExecuteSql(sqlite_sql, callback) {
    sqlite_db = api.require('db');
    sqlite_db.executeSql({
        name : BASE_FS_SQDB_NAME,
        sql : sqlite_sql
    }, function(ret, err) {
        if (ret.status) {
            callback(true);
        } else {
            api.toast({
                msg : '对不起,获取会话信息失败,为您恢复数据,请稍后'
            });
            openDb(function(is_true) {
                if (is_true) {
                    callback(true);
                } else {
                    callback(false);
                }
            });
        }
    });
}

2.查询

var db = api.require('db');
db.selectSql({
    name: 'db_name',
    sql: 'SELECT * FROM Persons'
}, function(ret, err) {
    if (ret.status) {
        alert(JSON.stringify(ret));
    } else {
        alert(JSON.stringify(err));
    }
});

查询案例

function dbSelectSql(sqlite_sql, callback) {
    sqlite_db = api.require('db');
    dbOpenDb(function(is_true) {
        if (is_true) {
            sqlite_db.selectSql({
                name : BASE_FS_SQDB_NAME,
                sql : sqlite_sql
            }, function(ret, err) {
                if (ret.status) {
                    // alert(JSON.stringify(ret.data));
                    callback(ret.data);
                } else {
                    api.toast({
                        msg : '数据查询失败:' + err.msg
                    });
                    openDb(function(is_true) {
                        if (is_true) {
                            callback(true);
                        } else {
                            callback(false);
                        }
                    });
                }
            });
        } else {
            callback(false);
        }
    });
}

3.打开数据库,如不存在则创建

var db = api.require('db');
db.openDatabase({
    name: 'db_name'
}, function(ret, err) {
    if (ret.status) {
        alert(JSON.stringify(ret));
    } else {
        alert(JSON.stringify(err));
    }
});

创建案例

function dbOpenDb(callback) {
    isExisDb(function(is_true) {
        if (is_true) {
            sqlite_db = api.require('db');
            //alert(dbname);
            sqlite_db.openDatabase({
                name : BASE_FS_SQDB_NAME,
                path : BASE_FS_SQDB_PATH + BASE_FS_SQDB_NAME + ".db"
            }, function(ret, err) {
                if (ret.status) {
                    callback(true);
                } else {
                    api.toast({
                        msg : '对不起,获取会话信息失败,为您恢复数据,请稍后'
                    });
                    openDb(function(is_true) {
                        if (is_true) {
                            callback(true);
                        } else {
                            callback(false);
                        }
                    });
                }
            });
        }
    });
}

本文转自TBHacker博客园博客,原文链接:http://www.cnblogs.com/jiqing9006/p/6808269.html,如需转载请自行联系原作者

你可能感兴趣的:(apicloud中的sqlite操作模块db)