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