数据库-database

描述

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


事件

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

  • restoredone:异步恢复完成时触发,事件函数定义:onRestoreDone(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)

1.9.0版本开始已废弃,请使用backupAsync(path)方法

saveAsAsync(path)

1.9.0版本开始已废弃,请使用backupAsync(path)方法

backupAsync(path)

备份数据库文件至path位置,异步操作,完成会调用onBackupDone()方法

service.data.database.backupAsync(‘/storage/d0/mydata.db’) 备份数据库文件保存至U盘

restoreAsync(path)

从path位置还原数据库文件,异步操作,完成会调用onRestoreDone()方法

service.data.database.restoreAsync(‘/storage/d0/mydata.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() 获取前面操作失败时的错误信息