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);
						}
					});
				}
			});
		}
	});
}