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