sqlCipher

概述

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

android编译环境配置

  • 1、android本插件必须使用升级环境编译

  • 2、最低android版本要求4.4.2

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 sqlCipher = api.require('sqlCipher');
sqlCipher.openDatabase({
    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及更高版本

closeDatabase

关闭数据库

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

params

name:

  • 类型:字符串
  • 描述:数据库别名

callback(ret, err)

ret:

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

err:

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

示例代码

var sqlCipher = api.require('sqlCipher');
sqlCipher.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 sqlCipher = api.require('sqlCipher');
sqlCipher.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 sqlCipher = api.require('sqlCipher');
sqlCipher.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 sqlCipher = api.require('sqlCipher');
sqlCipher.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及更高版本

openDatabaseSyn

closeDatabaseSyn

transactionSyn

executeSqlSyn

selectSqlSyn

openDatabaseSyn

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

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

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

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

params

name:

  • 类型:字符串
  • 描述:数据库别名

path:

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

passWord:

  • 类型:字符串类型
  • 描述:数据库密码

##return

  • 类型:布尔类型
  • 描述:是否成功

示例代码

var sqlCipher = api.require('sqlCipher');
var isSuccess = sqlCipher.openDatabaseSyn({
    name: 'test'
});

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

closeDatabaseSyn

关闭数据库

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

params

name:

  • 类型:字符串
  • 描述:数据库别名

##return

  • 类型:布尔类型
  • 描述:是否成功

示例代码

var sqlCipher = api.require('sqlCipher');
var isSuccess = sqlCipher.closeDatabaseSyn({
    name: 'test'
});

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

transactionSyn

执行事务操作语句

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

params

name:

  • 类型:字符串
  • 描述:数据库别名

operation:

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

##return

  • 类型:布尔类型
  • 描述:是否成功

示例代码

var sqlCipher = api.require('sqlCipher');
var isSuccess = sqlCipher.transactionSyn({
    name: 'test',
    operation: 'begin'
});

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

executeSqlSyn

执行 sql

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

params

name:

  • 类型:字符串
  • 描述:数据库别名

sql:

  • 类型:字符串
  • 描述:sql 语句

##return

  • 类型:布尔类型
  • 描述:是否成功

示例代码

var sqlCipher = api.require('sqlCipher');
sqlCipher.executeSqlSyn({
    name: 'test',
    sql: 'CREATE TABLE Persons(Id_P int, LastName varchar(255), FirstName varchar(255), Address varchar(255), City varchar(255))'
});

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

selectSqlSyn

查询sql

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

params

name:

  • 类型:字符串
  • 描述:数据库别名

sql:

  • 类型:字符串
  • 描述:sql语句

##return

  • 类型:JSON 数组
  • 描述:查询返回内容

示例代码

var sqlCipher = api.require('sqlCipher');
var result = sqlCipher.selectSqlSyn({
    name: 'test',
    sql: 'SELECT * FROM Persons'
});

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

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