sqlite常见问题我要提意见
SQLite模块用于操作本地数据库文件,可实现数据库文件的创建,执行SQL语句等功能。
注意:HBuilderX1.7.2及以上版本支持此功能。
方法:
- openDatabase: 打开数据库
- isOpenDatabase: 判断数据库是否打开
- closeDatabase: 关闭数据库
- transaction: 执行事务
- executeSql: 执行增删改等操作的SQL语句
- selectSql: 执行查询的SQL语句
回调方法:
- SQLiteSuccessCallback: SQLite操作成功回调函数
- SQLiteFailCallback: SQLite操作失败回调函数
权限:
5+功能模块(permissions)
{
// ...
"permissions":{
// ...
"SQLite": {
"description": "SQLite数据库"
}
}
}
openDatabase
打开数据库
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 : 无
示例:
// 打开数据库
function openDB(){
plus.sqlite.openDatabase({
name: 'first',
path: '_doc/test.db',
success: function(e){
console.log('openDatabase success!');
},
fail: function(e){
console.log('openDatabase failed: '+JSON.stringify(e));
}
});
}
isOpenDatabase
判断数据库是否打开
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
关闭数据库
void plus.sqlite.closeDatabase(options);
说明:
完成数据库操作后,必须关闭数据库,否则可能会导致系统资源无法释放。
参数:
options参数为json类型,包含以下属性:
- name: ( String ) 必选 数据库名称
- success: ( SQLiteSuccessCallback ) 可选 关闭数据库成功回调函数 回调函数无返回参数。
- fail: ( SQLiteFailCallback ) 可选 关闭数据库失败回调函数
返回值:
void : 无
示例:
// 关闭数据库
function closeDB(){
plus.sqlite.closeDatabase({
name: 'first',
success: function(e){
console.log('closeDatabase success!');
},
fail: function(e){
console.log('closeDatabase failed: '+JSON.stringify(e));
}
});
}
transaction
执行事务
void plus.sqlite.transaction(options);
参数:
options参数为json类型,包含以下属性:
- name: ( String ) 必选 数据库名称
- operation: ( String ) 必选 需要执行的事务操作 可选值:begin(开始事务)、commit(提交)、rollback(回滚)。
- success: ( SQLiteSuccessCallback ) 可选 执行事务成功回调函数 回调函数无返回参数。
- fail: ( SQLiteFailCallback ) 可选 执行事务失败回调函数
返回值:
void : 无
示例:
// 执行事务
function transactionDB(){
plus.sqlite.transaction({
name: 'first',
operation: 'begin',
success: function(e){
console.log('transaction success!');
},
fail: function(e){
console.log('transaction failed: '+JSON.stringify(e));
}
});
}
executeSql
执行增删改等操作的SQL语句
void plus.sqlite.executeSql(options);
参数:
options参数为json类型,包含以下属性:
- name: ( String ) 必选 数据库名称
- sql: ( Array[String] | String ) 必选 需要执行的SQL语句 参数为字符串时,表示执行单条SQL语句; 参数为字符串数组时(HBuilderX2.5.5+支持),表示执行多条SQL语句,按数组顺序执行,某条SQL语句执行错误则终止。 注意:Android平台不支持SQL语句中使用“;”分割多条命令,要运行多条命令请使用字符串数组参数。
- success: ( SQLiteSuccessCallback ) 可选 执行SQL语句成功回调函数 回调函数无返回参数。
- fail: ( SQLiteFailCallback ) 可选 执行SQL语句失败回调函数
返回值:
void : 无
示例:
// 执行SQL语句
function executeSQL(){
plus.sqlite.executeSql({
name: 'first',
sql: 'create table if not exists database("where" CHAR(110),"location" CHAR(100),"age" INT(11))',
success: function(e){
console.log('executeSql success!');
plus.sqlite.executeSql({
name: 'first',
sql: "insert into database values('北京','安乐林','11')",
success: function(e){
console.log('executeSql success!');
},
fail: function(e){
console.log('executeSql failed: '+JSON.stringify(e));
}
});
},
fail: function(e){
console.log('executeSql failed: '+JSON.stringify(e));
}
});
}
selectSql
执行查询的SQL语句
void plus.sqlite.selectSql(options);
参数:
options参数为json类型,包含以下属性:
- name: ( String ) 必选 数据库名称
- sql: ( String ) 必选 需要查询的SQL语句
- success: ( SQLiteSuccessCallback ) 可选 执行SQL语句成功回调函数 回调函数返回参数为JSON对象数组,其中JSON对象为查询的结果。 如果未查询到数据则返回参数为空数组。
- fail: ( SQLiteFailCallback ) 可选 执行SQL语句失败回调函数
返回值:
void : 无
示例:
// 查询SQL语句
function selectSQL(){
plus.sqlite.selectSql({
name: 'first',
sql: 'select * from database',
success: function(data){
console.log('selectSql success: ');
for(var i in data){
console.log(data[i]);
}
},
fail: function(e){
console.log('selectSql failed: '+JSON.stringify(e));
}
});
}
SQLiteSuccessCallback
SQLite操作成功回调函数
void onSuccess(event){
}
说明:
不同接口触发的成功回调参数event包含的属性存在差异,具体参考对应的接口描述说明。
参数:
- event: ( Object ) 必选 回调参数 回调函数参数包含的属性由调用接口决定,具体参考对应的接口描述说明。
返回值:
void : 无
SQLiteFailCallback
SQLite操作失败回调函数
function void onFail(Exception error){
// Handle error
var code = error.code; // 错误编码
var message = error.message; // 错误描述信息
}
参数:
- error: ( Exception ) 必选 回调参数,错误信息 可通过error.code(Number类型)获取错误码; 可通过error.message(String类型)获取错误描述信息。 完整错误码列表参考:5+API错误代码中的“Sqlite模块错误”章节。
返回值:
void : 无