APICloud创建本地数据库首先要引用db模块。

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 ) );
    }
    });
    };
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

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 ) );
    }
     });
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

注意: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 ) );
    }
     });
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

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 ) );
    }
});

猜你喜欢

转载自blog.csdn.net/weixin_41722928/article/details/80970376