APICloud 创建本地数据库(SQLite)

时间:2022-09-12 21:16:41

APICloud创建本地数据库首先要引用db模块。
db 模块封装了手机常用数据库 sqlite 的增删改查语句,可实现数据的本地存储,极大的简化了数据持久化问题。
1.创建和打开数据库(openDatabase)
打开数据库,若数据库不存在则创建数据库。
数据库打开后即使当前页面关闭了,数据库也不会关闭,除非手动调用 closeDatabase()方法关闭,所以一旦打开在其它页面就可以直接使用。
若数据库放在 widget 目录下,那么需要先把数据库拷贝到 fs:// 对应目录下面再使用

apiready = function(){
var db=api.require('db');//引用db模块
var sql="CREATE TABLE tb_class(Id_C int, className varchar(255), grade varchar(255))";
db.openDatabase({
name:'test_2'//数据库名
},function(ret,err){
if( ret.status ){
alert( "数据库创建成功" );
}else{
alert( JSON.stringify( err ) );
}
});
};

2.创建数据库表(executeSql)

var db=api.require('db');//引用db模块
var sql="CREATE TABLE tb_class(Id_C int, className varchar(255), grade varchar(255))";
db.executeSql({
name:'test_2',
sql:sql
},function(ret,err){
if( ret.status ){
alert( "class表创建成功" );
}else{
alert( JSON.stringify( err ) );
}
});

注意:executeSql()方法和openDatabase()方法不能放在同一个apiready = function(){}方法中,若放在一起,默认先执行executeSql()方法,最后执行openDatabase()方法。并且SQL语句必须大写,不然会报错。

3.添加数据(executeSql)

db.executeSql({
name:'test_2',
sql:'INSERT INTO tb_class(Id_C,className,grade) VALUES(2,"一年级三班","一年级")'
},function(ret,err){
if( ret.status ){
alert( "数据添加成功" );
}else{
alert( JSON.stringify( err ) );
}
});

4.查询数据(selectSql)

db.selectSql({
name: 'test_2',
sql: 'SELECT * FROM tb_class'
}, function(ret, err){
if( ret.status ){
//alert( JSON.stringify( ret.data.length) );
for(var i=0;i<ret.data.length;i++){
alert(ret.data[i].className);
}
}else{
alert( JSON.stringify( err ) );
}
});