apicloud访问mysql_APICloud db组件

本文介绍了APICloud db模块,它封装了SQLite数据库的增删改查,支持异步与同步接口,便于数据本地存储和跨页面使用。重点讲解了openDatabase、closeDatabase、transaction、executeSql和selectSql等关键函数及其用法示例。
摘要由CSDN通过智能技术生成

# APICloud db组件

db 模块封装了手机常用数据库 sqlite 的增删改查语句,可实现数据的本地存储,极大的简化了数据持久化问题,本模块已支持同步接口。

# 异步接口

# openDatabase

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

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

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

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

## params

name:

* 类型:字符串

* 描述:数据库名称

path:

* 类型:字符串

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

* 默认值:自动创建的路径

## callback(ret, err)

ret:

* 类型:JSON 对象

* 内部字段:

~~~

{

status: true //布尔类型;操作成功状态值,true|false

}

~~~

err:

* 类型:JSON 对象

* 内部字段:

~~~

{

code: '', //数字类型;错误码,详情参考-----附录之‘错误码对照表’。本参数暂仅支持iOS平台

msg: '' //字符串类型;错误信息

}

~~~

## 示例代码

~~~

var db = api.require('db');

db.openDatabase({

name: 'test'

}, function(ret, err) {

if (ret.status) {

alert(JSON.stringify(ret));

} else {

alert(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('db');

db.closeDatabase({

name: 'test'

}, function(ret, err) {

if (ret.status) {

alert(JSON.stringify(ret));

} else {

alert(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('db');

db.transaction({

name: 'test',

operation: 'begin'

}, function(ret, err) {

if (ret.status) {

alert(JSON.stringify(ret));

} else {

alert(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('db');

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) {

alert(JSON.stringify(ret));

} else {

alert(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('db');

db.selectSql({

name: 'test',

sql: 'SELECT * FROM Persons'

}, function(ret, err) {

if (ret.status) {

alert(JSON.stringify(ret));

} else {

alert(JSON.stringify(err));

}

});

~~~

## 可用性

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

可提供的1.0.0及更高版本

# 同步接口

# openDatabaseSync

打开数据库,若数据库不存在则创建数据库(同步接口)。

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

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

openDatabaseSync({params})

## params

name:

* 类型:字符串

* 描述:数据库名称

path:

* 类型:字符串

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

* 默认值:自动创建的路径

## return

ret:

* 类型:JSON 对象

* 内部字段:

~~~

{

status: true, //布尔类型;操作成功状态值,true|false

code: '', //数字类型;错误码,详情参考-----附录之‘错误码对照表’。,仅当 status 为 false 时有值。本参数暂仅支持iOS平台

msg: '' //字符串类型;错误描述,仅当 status 为 false 时有值

}

~~~

## 示例代码

~~~

var db = api.require('db');

var ret = db.openDatabaseSync({

name: 'test'

});

alert(JSON.stringify(ret));

~~~

## 可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

# closeDatabaseSync

关闭数据库(同步接口)

closeDatabaseSync({params})

## params

name:

* 类型:字符串

* 描述:数据库名称

## return

ret:

* 类型:JSON 对象

* 内部字段:

~~~

{

status: true, //布尔类型;操作成功状态值,true|false

code: '', //数字类型;错误码,详情参考-----附录之‘错误码对照表’。,仅当 status 为 false 时有值。本参数暂仅支持iOS平台

msg: '' //字符串类型;错误描述,仅当 status 为 false 时有值

}

~~~

## 示例代码

~~~

var db = api.require('db');

var ret = db.closeDatabaseSync({

name: 'test'

});

alert(JSON.stringify(ret));

~~~

## 可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

# transactionSync

执行事务操作语句(同步接口)

transactionSync({params})

## params

name:

* 类型:字符串

* 描述:数据库名称

operation:

* 类型:字符串

* 描述:事务操作类型,取值范围如下:

* begin //开始事务

* commit //提交事务

* rollback //回滚操作

## return

ret:

* 类型:JSON 对象

* 内部字段:

~~~

{

status: true, //布尔类型;操作成功状态值,true|false

code: '', //数字类型;错误码,详情参考-----附录之‘错误码对照表’。,仅当 status 为 false 时有值。本参数暂仅支持iOS平台

msg: '' //字符串类型;错误描述,仅当 status 为 false 时有值

}

~~~

## 示例代码

~~~

var db = api.require('db');

var ret = db.transactionSync({

name: 'test',

operation: 'begin'

});

alert(JSON.stringify(ret));

~~~

## 可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

# executeSqlSync

执行 sql(同步接口)

executeSqlSync({params})

## params

name:

* 类型:字符串

* 描述:数据库名称

sql:

* 类型:字符串

* 描述:sql 语句

## return

ret:

* 类型:JSON 对象

* 内部字段:

~~~

{

status: true, //布尔类型;操作成功状态值,true|false

code: '', //数字类型;错误码,详情参考-----附录之‘错误码对照表’。,仅当 status 为 false 时有值。本参数暂仅支持iOS平台

msg: '' //字符串类型;错误描述,仅当 status 为 false 时有值

}

~~~

## 示例代码

~~~

var db = api.require('db');

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))'

});

alert(JSON.stringify(ret));

~~~

## 可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

# selectSqlSync

查询 sql(同步接口)

selectSqlSync({params})

## params

name:

* 类型:字符串

* 描述:数据库名称

sql:

* 类型:字符串

* 描述:sql语句

## return

ret:

* 类型:JSON 对象

* 内部字段:

~~~

{

status: true, //布尔类型;操作成功状态值,true|false

data: [], //数组类型;查询结果数据

code: '', //数字类型;错误码,详情参考-----附录之‘错误码对照表’。,仅当 status 为 false 时有值。本参数暂仅支持iOS平台

msg: '' //字符串类型;错误描述,仅当 status 为 false 时有值

}

~~~

## 示例代码

~~~

var db = api.require('db');

var ret = db.selectSqlSync({

name: 'test',

sql: 'SELECT * FROM Persons'

});

alert(JSON.stringify(ret));

~~~

## 可用性

iOS系统,Android系统

可提供的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 */

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值