dbPlus

异步接口

同步接口

附录

论坛示例

为帮助用户更好更快的使用插件,论坛维护了一个示例,示例中包含示例代码供您参考。

概述

此插件封装了SQLCipher工具,可加密创建并进行增删改查等数据库操作。SQLCipher是一个在SQLite基础之上进行扩展的开源数据库,它主要是在SQLite的基础之上增加了数据加密功能,如果我们在项目中使用它来存储数据的话,就可以大大提高程序的安全性。

固件要求

Android:4.1及以上 iOS:8.0及以上

异步接口

subfile

获取指定目录下的子文件

subfile({params},callback(ret, err))

params

directory

  • 类型:字符串
  • 描述:(可选项)目录路径,不传时使用 dbPlus 插件的默认路径。支持 fs://、widget://等协议(如fs://user.db)
  • 默认值:本插件自动创建的路径

callback(ret, err)

ret:

  • 类型:JSON对象
  • 内部字段:
{
    status: true   //布尔型;true||false
    files:[],        //数组类型;
    folders:[]       //数组类型;
}

err:

  • 类型:JSON对象
  • 内部字段:
{
    msg: "",//字符串类型;错误信息
    code: "",//数字类型;错误码,取值范围:
            //1:该路径不存在文件
            //2:该路径是文件路径非目录路径
}

示例代码

var db = api.require('dbPlus');
db.subfile({
    directory: ''
}, function(ret, err) {
    if (ret.status) {
        api.alert({msg: JSON.stringify(ret)});
    } else {
        api.alert({msg: JSON.stringify(err)});
    }
});

可用性

iOS系统,Android系统,PC 模拟器

可提供的1.0.0及更高版本

openDatabase

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

数据库打开后即使当前页面关闭了,数据库也不会关闭,除非手动调用 closeDatabase()方法关闭,所以一旦打开在其它页面就可以直接使用。

若数据库放在 widget 目录下,那么需要先把数据库拷贝到 fs:// 对应目录下面再使用

openDatabase({params}, callback(ret, err))

params

name:

  • 类型:字符串
  • 描述:(必填项)数据库名称

path:

  • 类型:字符串
  • 描述:(可选项)数据库所在路径,不传时使用默认创建的路径。支持 fs://、widget://等协议(如fs://user.db)
  • 默认值:自动创建的路径

password:

  • 类型:字符串
  • 描述:(必填项)数据库密码

callback(ret, err)

ret:

  • 类型:JSON对象
  • 内部字段:
{
    status: true   //布尔型;true||false
}

err:

  • 类型:JSON 对象
  • 内部字段:
{
    code: '',         //数字类型;错误码,详情参考-----附录之‘错误码对照表’。本参数暂仅支持iOS平台
    msg: ''           //字符串类型;错误信息
}

示例代码

var db = api.require('dbPlus');
db.openDatabase({
    name: 'test',
    password : '123456'
}, function(ret, err) {
    if (ret.status) {
        api.alert({msg: JSON.stringify(ret)});
    } else {
        api.alert({msg: JSON.stringify(err)});
    }
});

可用性

iOS系统,Android系统,PC 模拟器

可提供的1.0.0及更高版本

closeDatabase

关闭数据库

closeDatabase({params}, callback(ret, err))

params

name:

  • 类型:字符串
  • 描述:(必填项)数据库名称

callback(ret, err)

ret:

  • 类型:JSON对象
  • 内部字段:
{
    status: true   //布尔型;true||false
}

err:

  • 类型:JSON对象
  • 内部字段:
{
    code: '',             //数字类型;错误码,详情参考-----附录之‘错误码对照表’。本参数暂仅支持iOS平台
    msg: ''               //字符串类型;错误描述
}

示例代码

var db = api.require('dbPlus');
db.closeDatabase({
    name: 'test'
}, function(ret, err) {
    if (ret.status) {
        api.alert({msg: JSON.stringify(ret)});
    } else {
        api.alert({msg: JSON.stringify(err)});
    }
});

可用性

iOS系统,Android系统,PC 模拟器

可提供的1.0.0及更高版本

transaction

执行事务操作语句

transaction({params}, callback(ret, err))

params

name:

  • 类型:字符串
  • 描述:(必填项)数据库名称

operation:

  • 类型:字符串
  • 描述:(必填项)事务操作类型,取值范围如下: begin //开始事务 commit //提交事务 rollback //回滚操作

callback(ret, err)

ret:

  • 类型:JSON对象
  • 内部字段:
{
    status: true   //布尔型;true||false
}

err:

  • 类型:JSON对象
  • 内部字段:
{
    code: '',             //数字类型;错误码,详情参考-----附录之‘错误码对照表’。本参数暂仅支持iOS平台
    msg: ''                //字符串类型;错误描述
}

示例代码

var db = api.require('dbPlus');
db.transaction({
    name: 'test',
    operation: 'begin'
}, function(ret, err) {
    if (ret.status) {
        api.alert({msg: JSON.stringify(ret)});
    } else {
        api.alert({msg: JSON.stringify(err)});
    }
});

可用性

iOS系统,Android系统,PC 模拟器

可提供的1.0.0及更高版本

executeSql

执行 sql

executeSql({params}, callback(ret, err))

params

name:

  • 类型:字符串
  • 描述:(必填项)数据库名称

sql:

  • 类型:字符串
  • 描述:(必填项)sql 语句

callback(ret, err)

ret:

  • 类型:JSON对象
  • 内部字段:
{
    status: true,   //布尔型;true||false
}

err:

  • 类型:JSON对象
  • 内部字段:
{
    code: '',             //数字类型;错误码,详情参考-----附录之‘错误码对照表’。本参数暂仅支持iOS平台
    msg: ''                //字符串类型;错误描述
}

示例代码

var db = api.require('dbPlus');
db.executeSql({
    name: 'test',
    sql: 'CREATE TABLE Persons(Id_P int, LastName varchar(255), FirstName varchar(255), Address varchar(255), City varchar(255))'
}, function(ret, err) {
    if (ret.status) {
        api.alert({msg: JSON.stringify(ret)});
    } else {
        api.alert({msg: JSON.stringify(err)});
    }
});

可用性

iOS系统,Android系统,PC模拟器

可提供的1.0.0及更高版本

selectSql

查询sql

selectSql({params}, callback(ret, err))

params

name:

  • 类型:字符串
  • 描述:(必填项)数据库名称

sql:

  • 类型:字符串
  • 描述:(必填项)sql语句

callback(ret, err)

ret:

  • 类型:JSON对象
  • 内部字段:
{
    status: true,     //布尔类型;操作成功状态值,true|false
    data: []          //数组类型;查询结果数据
}

err:

  • 类型:JSON对象
  • 内部字段:
{
    code: '',             //数字类型;错误码,详情参考-----附录之‘错误码对照表’。本参数暂仅支持iOS平台
    msg: ''               //字符串类型;错误描述
}

示例代码

var db = api.require('dbPlus');
db.selectSql({
    name: 'test',
    sql: 'SELECT * FROM Persons'
}, function(ret, err) {
    if (ret.status) {
        api.alert({msg: JSON.stringify(ret)});
    } else {
        api.alert({msg: JSON.stringify(err)});
    }
});

可用性

iOS系统,Android系统,PC 模拟器

可提供的1.0.0及更高版本

updatePassword

更改数据库密码

updatePassword({params}, callback(ret, err))

params

name:

  • 类型:字符串
  • 描述:(必填项)数据库名称

password:

  • 类型:字符串
  • 描述:(必填项)数据库新密码

callback(ret, err)

ret:

  • 类型:JSON对象
  • 内部字段:
{
    status: true,     //布尔类型;操作成功状态值,true|false
}

err:

  • 类型:JSON对象
  • 内部字段:
{
    code: '',             //数字类型;错误码,详情参考-----附录之‘错误码对照表’。本参数暂仅支持iOS平台
    msg: ''               //字符串类型;错误描述
}

示例代码

var db = api.require('dbPlus');
db.updatePassword({
    name: 'test',
    password: '111111'
}, function(ret, err) {
    if (ret.status) {
        api.alert({msg: JSON.stringify(ret)});
    } else {
        api.alert({msg: JSON.stringify(err)});
    }
});

可用性

iOS系统,Android系统,PC 模拟器

可提供的1.0.0及更高版本

同步接口

subfileSync

获取指定目录下的子文件

subfileSync({params})

params

directory:

  • 类型:字符串
  • 描述:(可选项)目录路径,不传时使用 dbPlus 插件的默认路径。支持 fs://、widget://等协议(如fs://user.db)
  • 默认值:本插件自动创建的路径

##ret:

  • 类型:JSON对象
  • 内部字段:
{
    status: true        //布尔类型;操作成功状态值,true|false
    files:[],        //数组类型;
    folders:[],      //数组类型;
    msg: '' ,        //字符串类型;错误信息,仅当 status 为 false 时有值
    code: ''         //数字类型;错误码,仅当 status 为 false 时有值。取值范围:
                     //1:该路径不存在文件
                     //2:该路径是文件路径非目录路径
}

示例代码

var db = api.require('dbPlus');
var ret = db.subfileSync({
    directory: ''
});

api.alert({msg: JSON.stringify(ret)});

可用性

iOS系统,Android系统,PC 模拟器

可提供的1.0.0及更高版本

openDatabaseSync

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

数据库打开后即使当前页面关闭了,数据库也不会关闭,除非手动调用 closeDatabase()方法关闭,所以一旦打开在其它页面就可以直接使用。

若数据库放在 widget 目录下,那么需要先把数据库拷贝到 fs:// 对应目录下面再使用

openDatabaseSync({params})

params

name:

  • 类型:字符串
  • 描述:(必填项)数据库名称

path:

  • 类型:字符串
  • 描述:(可选项)数据库所在路径,不传时使用默认创建的路径。支持 fs://、widget://等协议(如fs://user.db)
  • 默认值:自动创建的路径

password:

  • 类型:字符串
  • 描述:(必填项)数据库密码

##ret:

  • 类型:JSON对象
  • 内部字段:
{
    status: true,    //布尔类型;操作成功状态值,true|false
    code: '',        //数字类型;错误码,详情参考-----附录之‘错误码对照表’。,仅当 status 为 false 时有值。本参数暂仅支持iOS平台
    msg: ''          //字符串类型;错误描述,仅当 status 为 false 时有值
}

示例代码

var db = api.require('dbPlus');
var ret = db.openDatabaseSync({
    name: 'test',
    password : '1234567'
});
api.alert({msg: JSON.stringify(ret)});

可用性

iOS系统,Android系统,PC 模拟器

可提供的1.0.0及更高版本

closeDatabaseSync

关闭数据库

closeDatabaseSync({params})

params

name:

  • 类型:字符串
  • 描述:(必填项)数据库名称

##ret:

  • 类型:JSON对象
  • 内部字段:
{
    status: true,     //布尔类型;操作成功状态值,true|false
    code: '',        //数字类型;错误码,详情参考-----附录之‘错误码对照表’。,仅当 status 为 false 时有值。本参数暂仅支持iOS平台
    msg: ''           //字符串类型;错误描述,仅当 status 为 false 时有值
}

示例代码

var db = api.require('dbPlus');
var ret = db.closeDatabaseSync({
    name: 'test'
});
api.alert({msg: JSON.stringify(ret)});

可用性

iOS系统,Android系统,PC 模拟器

可提供的1.0.0及更高版本

transactionSync

执行事务操作语句

transactionSync({params})

params

name:

  • 类型:字符串
  • 描述:(必填项)数据库名称

operation:

  • 类型:字符串
  • 描述:(必填项)事务操作类型,取值范围如下: begin //开始事务 commit //提交事务 rollback //回滚操作

##ret:

  • 类型:JSON对象
  • 内部字段:
{
    status: true,       //布尔类型;操作成功状态值,true|false
    code: '',        //数字类型;错误码,详情参考-----附录之‘错误码对照表’。,仅当 status 为 false 时有值。本参数暂仅支持iOS平台
    msg: ''             //字符串类型;错误描述,仅当 status 为 false 时有值
}

示例代码

var db = api.require('dbPlus');
var ret = db.transactionSync({
    name: 'test',
    operation: 'begin'
});
api.alert({msg: JSON.stringify(ret)});

可用性

iOS系统,Android系统,PC 模拟器

可提供的1.0.0及更高版本

executeSqlSync

执行 sql

executeSqlSync({params})

params

name:

  • 类型:字符串
  • 描述:(必填项)数据库名称

sql:

  • 类型:字符串
  • 描述:(必填项)sql 语句

##ret:

  • 类型:JSON对象
  • 内部字段:
{
    status: true,      //布尔类型;操作成功状态值,true|false
    code: '',        //数字类型;错误码,详情参考-----附录之‘错误码对照表’。,仅当 status 为 false 时有值。本参数暂仅支持iOS平台
    msg: ''            //字符串类型;错误描述,仅当 status 为 false 时有值
}

示例代码

var db = api.require('dbPlus');
var ret = db.executeSqlSync({
    name: 'test',
    sql: 'CREATE TABLE Persons(Id_P int, LastName varchar(255), FirstName varchar(255), Address varchar(255), City varchar(255))'
});
api.alert({msg: JSON.stringify(ret)});

可用性

iOS系统,Android系统,PC 模拟器

可提供的1.0.0及更高版本

selectSqlSync

查询 sql

selectSqlSync({params})

params

name:

  • 类型:字符串
  • 描述:(必填项)数据库名称

sql:

  • 类型:字符串
  • 描述:(必填项)sql语句

##ret:

  • 类型:JSON对象
  • 内部字段:
{
    status: true,     //布尔类型;操作成功状态值,true|false
    data: [],         //数组类型;查询结果数据
    code: '',        //数字类型;错误码,详情参考-----附录之‘错误码对照表’。,仅当 status 为 false 时有值。本参数暂仅支持iOS平台
    msg: ''           //字符串类型;错误描述,仅当 status 为 false 时有值
}

示例代码

var db = api.require('dbPlus');
var ret = db.selectSqlSync({
    name: 'test',
    sql: 'SELECT * FROM Persons'
});
api.alert({msg: JSON.stringify(ret)});

可用性

iOS系统,Android系统,PC 模拟器

可提供的1.0.0及更高版本

附录

错误码对照表

0:SQLITE_OK / Successful result / 1:SQLITE_ERROR / SQL error or missing database / 2:SQLITE_INTERNAL / Internal logic error in SQLite / 3:SQLITE_PERM / Access permission denied / 4:SQLITE_ABORT / Callback routine requested an abort / 5:SQLITE_BUSY / The database file is locked / 6:SQLITE_LOCKED / A table in the database is locked / 7:SQLITE_NOMEM / A malloc() failed / 8:SQLITE_READONLY / Attempt to write a readonly database / 9:SQLITE_INTERRUPT / Operation terminated by sqlite3_interrupt()/ 10:SQLITE_IOERR / Some kind of disk I/O error occurred / 11:SQLITE_CORRUPT / The database disk image is malformed / 12:SQLITE_NOTFOUND / Unknown opcode in sqlite3_file_control() / 13:SQLITE_FULL / Insertion failed because database is full / 14:SQLITE_CANTOPEN / Unable to open the database file / 15:SQLITE_PROTOCOL / Database lock protocol error / 16:SQLITE_EMPTY / Database is empty / 17:SQLITE_SCHEMA / The database schema changed / 18:SQLITE_TOOBIG / String or BLOB exceeds size limit / 19:SQLITE_CONSTRAINT / Abort due to constraint violation / 20:SQLITE_MISMATCH / Data type mismatch / 21:SQLITE_MISUSE / Library used incorrectly / 22:SQLITE_NOLFS / Uses OS features not supported on host / 23:SQLITE_AUTH / Authorization denied / 24:SQLITE_FORMAT / Auxiliary database format error / 25:SQLITE_RANGE / 2nd parameter to sqlite3_bind out of range / 26:SQLITE_NOTADB / File opened that is not a database file / 27:SQLITE_NOTICE / Notifications from sqlite3_log() / 28:SQLITE_WARNING / Warnings from sqlite3_log() / 100:SQLITE_ROW / sqlite3_step() has another row ready / 101:SQLITE_DONE / sqlite3_step() has finished executing / 102:SQLITE_PASSWORD_ERROR / Incorrect password /

是否仍需要帮助? 请保持联络!
最后更新于 2024/11/18