数据库-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() 获取前面操作失败时的错误信息 |