sqlite

SQLite模块用于操作本地数据库文件,可实现数据库文件的创建,执行SQL语句等功能。

注意:HBuilderX1.7.2及以上版本支持此功能。

方法:

回调方法:

权限:

5+功能模块(permissions)

  1. {
  2. // ...
  3. "permissions":{
  4. // ...
  5. "SQLite": {
  6. "description": "SQLite数据库"
  7. }
  8. }
  9. }

openDatabase

打开数据库

  1. void plus.sqlite.openDatabase(options);

说明:

如果数据库存在则打开,不存在则创建。

参数:

options参数为json类型,包含以下属性:

  • name: (String)必选 数据库名称
  • path: (String)必选 数据库路径必须为本地地址,支持以下类型路径:5+ API路径(RelativeURL) - 以"_"开头的相对路径,如"_doc/a.db"(推荐使用"_doc/x.db"目录保存);相对路径 - 相对于当前页面的host位置,如"a.db"(不推荐使用,相对路径无法写入数据,只能读取数据);绝对路径 - 系统绝对路径,如Android平台"/sdcard/a.db",此类路径通常通过其它5+ API获取的(不推荐使用,无法跨平台);本地路径URL - 以“file://”开头,后面跟随系统绝对路径。注意:写入数据需符合系统沙盒权限机制,应用资源目录(_www)目录通常不允许写操作,只能读取。
  • success: (SQLiteSuccessCallback)可选 打开数据库成功回调函数回调函数无返回参数。
  • fail: (SQLiteFailCallback)可选 打开数据库失败回调函数

返回值:

void: 无

示例:

  1. // 打开数据库
  2. function openDB(){
  3. plus.sqlite.openDatabase({
  4. name: 'first',
  5. path: '_doc/test.db',
  6. success: function(e){
  7. console.log('openDatabase success!');
  8. },
  9. fail: function(e){
  10. console.log('openDatabase failed: '+JSON.stringify(e));
  11. }
  12. });
  13. }

uni-app使用plus注意事项

isOpenDatabase

判断数据库是否打开

  1. Boolean plus.sqlite.isOpenDatabase(options);

说明:

数据库已经打开则返回true,数据库没有打开则返回false。HBuilderX1.9.0及以上版本支持。

参数:

options参数为json类型,包含以下属性:

  • name: (String)必选 数据库名称
  • path: (String)必选 数据库路径必须为本地地址,支持以下类型路径:5+ API路径(RelativeURL) - 以"_"开头的相对路径,如"_doc/a.db"(推荐使用"_doc/x.db"目录保存);相对路径 - 相对于当前页面的host位置,如"a.db"(不推荐使用,相对路径无法写入数据,只能读取数据);绝对路径 - 系统绝对路径,如Android平台"/sdcard/a.db",此类路径通常通过其它5+ API获取的(不推荐使用,无法跨平台);本地路径URL - 以“file://”开头,后面跟随系统绝对路径。注意:写入数据需符合系统沙盒权限机制,应用资源目录(_www)目录通常不允许写操作,只能读取。

返回值:

Boolean: true表示数据库已打开,false表示数据库没有打开。

closeDatabase

关闭数据库

  1. void plus.sqlite.closeDatabase(options);

说明:

完成数据库操作后,必须关闭数据库,否则可能会导致系统资源无法释放。

参数:

options参数为json类型,包含以下属性:

  • name: (String)必选 数据库名称
  • success: (SQLiteSuccessCallback)可选 关闭数据库成功回调函数回调函数无返回参数。
  • fail: (SQLiteFailCallback)可选 关闭数据库失败回调函数

返回值:

void: 无

示例:

  1. // 关闭数据库
  2. function closeDB(){
  3. plus.sqlite.closeDatabase({
  4. name: 'first',
  5. success: function(e){
  6. console.log('closeDatabase success!');
  7. },
  8. fail: function(e){
  9. console.log('closeDatabase failed: '+JSON.stringify(e));
  10. }
  11. });
  12. }

uni-app使用plus注意事项

transaction

执行事务

  1. void plus.sqlite.transaction(options);

参数:

options参数为json类型,包含以下属性:

  • name: (String)必选 数据库名称
  • operation: (String)必选 需要执行的事务操作可选值:begin(开始事务)、commit(提交)、rollback(回滚)。
  • success: (SQLiteSuccessCallback)可选 执行事务成功回调函数回调函数无返回参数。
  • fail: (SQLiteFailCallback)可选 执行事务失败回调函数

返回值:

void: 无

示例:

  1. // 执行事务
  2. function transactionDB(){
  3. plus.sqlite.transaction({
  4. name: 'first',
  5. operation: 'begin',
  6. success: function(e){
  7. console.log('transaction success!');
  8. },
  9. fail: function(e){
  10. console.log('transaction failed: '+JSON.stringify(e));
  11. }
  12. });
  13. }

uni-app使用plus注意事项

executeSql

执行增删改等操作的SQL语句

  1. void plus.sqlite.executeSql(options);

参数:

options参数为json类型,包含以下属性:

  • name: (String)必选 数据库名称
  • sql: (Array[String]|String)必选 需要执行的SQL语句参数为字符串时,表示执行单条SQL语句;参数为字符串数组时,表示执行多条SQL语句,按数组顺序执行,某条SQL语句执行错误则终止。注意:Android平台不支持SQL语句中使用“;”分割多条命令,要运行多条命令请使用字符串数组参数。
  • success: (SQLiteSuccessCallback)可选 执行SQL语句成功回调函数回调函数无返回参数。
  • fail: (SQLiteFailCallback)可选 执行SQL语句失败回调函数

返回值:

void: 无

示例:

  1. // 执行SQL语句
  2. function executeSQL(){
  3. plus.sqlite.executeSql({
  4. name: 'first',
  5. sql: 'create table if not exists database("where" CHAR(110),"location" CHAR(100),"age" INT(11))',
  6. success: function(e){
  7. console.log('executeSql success!');
  8. plus.sqlite.executeSql({
  9. name: 'first',
  10. sql: "insert into database values('北京','安乐林','11')",
  11. success: function(e){
  12. console.log('executeSql success!');
  13. },
  14. fail: function(e){
  15. console.log('executeSql failed: '+JSON.stringify(e));
  16. }
  17. });
  18. },
  19. fail: function(e){
  20. console.log('executeSql failed: '+JSON.stringify(e));
  21. }
  22. });
  23. }

uni-app使用plus注意事项

selectSql

执行查询的SQL语句

  1. void plus.sqlite.selectSql(options);

参数:

options参数为json类型,包含以下属性:

  • name: (String)必选 数据库名称
  • sql: (String)必选 需要查询的SQL语句
  • success: (SQLiteSuccessCallback)可选 执行SQL语句成功回调函数回调函数返回参数为JSON对象数组,其中JSON对象为查询的结果。如果未查询到数据则返回参数为空数组。
  • fail: (SQLiteFailCallback)可选 执行SQL语句失败回调函数

返回值:

void: 无

示例:

  1. // 查询SQL语句
  2. function selectSQL(){
  3. plus.sqlite.selectSql({
  4. name: 'first',
  5. sql: 'select * from database',
  6. success: function(data){
  7. console.log('selectSql success: ');
  8. for(var i in data){
  9. console.log(data[i]);
  10. }
  11. },
  12. fail: function(e){
  13. console.log('selectSql failed: '+JSON.stringify(e));
  14. }
  15. });
  16. }

uni-app使用plus注意事项

SQLiteSuccessCallback

SQLite操作成功回调函数

  1. void onSuccess(event){
  2. }

说明:

不同接口触发的成功回调参数event包含的属性存在差异,具体参考对应的接口描述说明。

参数:

  • event: (json)必选 回调参数回调函数参数包含的属性由调用接口决定,具体参考对应的接口描述说明。

返回值:

void: 无

SQLiteFailCallback

SQLite操作失败回调函数

  1. function void onFail(DOMException error){
  2. // Handle error
  3. var code = error.code; // 错误编码
  4. var message = error.message; // 错误描述信息
  5. }

参数:

  • error: (DOMException)必选 回调参数,错误信息可通过error.code(Number类型)获取错误码;可通过error.message(String类型)获取错误描述信息。完整错误码列表参考:5+API错误代码中的“Sqlite模块错误”章节。

返回值:

void: 无