目录
概述
在移动开发中,由于移动特征,经常需要离线缓存数据,技术手段除了本地文件缓存外,本地数据库存储也是常用的技术手段,UAP Mobile平台可支持使用Sqlite数据库进行本地数据存储。
操作Sqlite数据库的API: $sqlite
方法参数为一个JSON定义。
是否存在数据库($sqlite.exist)
参数:{db: ”dbname”}
示例:
var hasdb = $sqlite.exist(dbname);// 返回值为字符串:”true”或者 ”false”
执行一个sql,无返回值,比如新增、删除($sqlite.execSql)
参数:{db:”dbname”,sql:”sql语句”}
示例:
var sql="insert into person(name,xclass) values…";
var param = {
db : dbname,
sql : sql
}
$sqlite.execSql(param);
执行一个查询($sqlite.query)
参数:如下例param
示例:
var sql="select * form person";
var param = {
db : dbname, //数据库名字
sql : sql, //执行的查询语句
"startIndex" : 0, //从第几条记录开始
"endIndex" : 10 //到第几条记录结束
}
$sqlite.query(param);
执行一个分页查询($sqlite. queryByPage)
参数:如下例param
示例:
var sql="select * form person";
var param = {
db : dbname, //数据库名字
sql : sql, //执行的查询语句
"pageIndex" :0, //从第几页开始,从0开始
"pageSize" : 20 //每页的记录数
}
$sqlite. queryByPage(param);
iuap mobile手机端数据库编程示例
数据库初始化
首先,要选择一个时机去初始化数据库。初始化一次就可以了。
这个时机一般选择在某个控件的onload事件里,比如页面加载的时机。
示例:
functiononload() {
varparam = {
db : "mydb"
};
if ($sqlite.exist(param) == "false") {//如果不存在这个数据库就创建它
initDB();
}
}
functioninitDB() {
varsql = "CREATETABLEperson(_idINTEGERPRIMARYKEYAUTOINCREMENT,nameVARCHAR,xclassVARCHAR)";
varparam = {
db : dbname,
sql : sql
};
$sqlite.execSql(param);
}
数据库操作
查询并把结果放入数据源
var param = {
db : "mydb",
sql : "select * from person",
pageIndex : 0,
pageSize : 100
}
var data = $sqlite.queryByPageNo(param);
var listdata = {
"list" : data
}
$ctx.push(listdata);
新增记录
varsql = "INSERT INTO person(name, xclass) VALUES('张三', '北京大学');";
varparam = {
db : "mydb",
sql : sql
}
$sqlite.execSql(param);
删除记录
var sql = "delete from person";
var result = confirm("是否全部删除?");
if (!result) {
return;
}
var param = {
db : "mydb",
sql : sql
}
$sqlite.execSql(param);
备注:样例代码来自于样例工程,代码位置:service页面点击“本地数据库操作”,是一个完整的可运行的例子。
文档更新时间: 2018-01-15 14:56