数据库-database

描述

数据库,父对象为service.data,无子对象。使用的是轻量级的sqlite数据库,数据库以单个文件的形式保存,用户可以导出到U盘或者别的路径备份数据。


事件

  • savedone:异步保存完成时触发,事件函数定义:onSaveDone(result),result为保存结果,1-成功,0-失败

属性

名称 功能说明 脚本例子
path 数据库文件的绝对路径 service.data.database.path = "/user/test.db" 设置数据库文件的位置为/user/test.db
separator 查询返回结果的分隔符 service.data.database.separator = ',' 设置分隔符为逗号
debug 打印sql语句到调试日志,默认为false service.data.database.debug = true 设置打印sql语句到调试器日志

方法

名称 功能说明 脚本例子
open() 打开当前数据库,如果数据库不存在,会自动创建。使用数据库前必须先调用此方法。返回布尔值。一次只能打开一个数据库,调用open方法会自动关闭上一次打开的数据库 service.data.database.open() 打开当前数据库(文件位置由path属性设置)
open(database_path) 打开指定的数据库,如果数据库不存在,会自动创建。返回布尔值。一次只能打开一个数据库,调用open方法会自动关闭上一次打开的数据库 service.data.database.open('/storage/d0/test.db') 打开usb存储器上的数据库
close() 关闭数据库。无返回值 service.data.database.close() 关闭数据库
saveAs(path) 数据库文件另存为(同步),path为目标文件路径。 service.data.database.
saveAs('/storage/d0/backup.db'); 数据库文件另存到U盘
saveAsAsync(path) 数据库文件另存为(异步),path为目录文件路径,文件较大时建议使用异步另存方法。保存结束后,会调用onSaveDone(result)事件方法 service.data.database.
saveAsAsync('/storage/d0/backup.db');异步保存数据库到U盘
create(table_name, column_datatypes) 创建表,table_name表名,column_datatypes字段类型。返回布尔值 service.data.database.create('students','id INTEGER PRIMARY KEY, firstname VARCHAR(30), lastname VARCHAR(30)')) 创建表,包含3个字段(id, firstname, lastname)
tables() 获取所有表名,返回值为数组 var tables = service.data.database.tables(); 获取所有表名
drop(table_name) 删除表,table_name表名。返回布尔值 service.data.database.drop('students') 删除表
insert(table_name, column_values) 插入记录,table_name表名,column_values字段值。返回布尔值 注意sql里面使用单引号来表示字符串的开始和结束,所以column_values的最外面最好是使用双引号,如 var column_values = "123, 'abc'"; var column_values = "1, 'san', 'zhang'"; service.data.database.insert('students', column_values) 插入一条记录
deleteFrom(table_name, condition) 删除记录,table_name表名,condition条件。返回布尔值 service.data.database.deleteFrom('students', 'id=2') 删除id为1的记录
update(table_name, column_assignments, condition) 修改记录,table_name表名,column_assignments字段赋值,condition条件。返回布尔值 service.data.database.update('students', 'firstname="si", lastname="li"', 'id=1')修改id为1的记录
select(table_name, column_names, condition) 查询记录,table_name表名,column_names字段名,condition条件。返回布尔值 service.data.database.select('students', '*', 'ORDER BY id DESC') 查询所有记录,按id倒序显示结果
recordCount() 返回查询记录返回的条目总数 service.data.database.recordCount() 返回查询记录返回的条目数
readRecord(index) 读取查询记录下标为index的数据,index从0开始 var line = service.data.database.readRecord(0) 读取查询记录返回的首条数据
readAllRecords() 读取查询记录的所有数据 var content = service.data.database.readAllRecords() 读取查询记录返回的所有数据
readRecordHeader() 读取查询记录的字段名称 var headers = service.data.database.readRecordHeader() 读取查询记录的字段名称
execute(sql) 执行原始的sql语句,适用于sql高级用户 service.data.database.execute('select * from students limit 3') 查询前3条记录
transactionBegin() 开始一个事务。返回布尔值 service.data.database.transactionBegin() 开始一个事务
transactionEnd() 结束一个事务。返回布尔值 service.data.database.transactionEnd() 结束一个事务
rollback() 事务回滚。返回布尔值 service.data.database.rollback() 事务出错时,回滚
lastError() 操作返回值为false时,获取错误信息 var info = service.data.database.lastError() 获取前面操作失败时的错误信息

results matching ""

    No results matching ""