apicloud中的sqlite操作模块db

简介:

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

1.执行

var db = api.require('db');
db.executeSql({
    name: 'db_name',
    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));
    }
});

执行案例

function dbExecuteSql(sqlite_sql, callback) {
    sqlite_db = api.require('db');
    sqlite_db.executeSql({
        name : BASE_FS_SQDB_NAME,
        sql : sqlite_sql
    }, function(ret, err) {
        if (ret.status) {
            callback(true);
        } else {
            api.toast({
                msg : '对不起,获取会话信息失败,为您恢复数据,请稍后'
            });
            openDb(function(is_true) {
                if (is_true) {
                    callback(true);
                } else {
                    callback(false);
                }
            });
        }
    });
}

2.查询

var db = api.require('db');
db.selectSql({
    name: 'db_name',
    sql: 'SELECT * FROM Persons'
}, function(ret, err) {
    if (ret.status) {
        alert(JSON.stringify(ret));
    } else {
        alert(JSON.stringify(err));
    }
});

查询案例

function dbSelectSql(sqlite_sql, callback) {
    sqlite_db = api.require('db');
    dbOpenDb(function(is_true) {
        if (is_true) {
            sqlite_db.selectSql({
                name : BASE_FS_SQDB_NAME,
                sql : sqlite_sql
            }, function(ret, err) {
                if (ret.status) {
                    // alert(JSON.stringify(ret.data));
                    callback(ret.data);
                } else {
                    api.toast({
                        msg : '数据查询失败:' + err.msg
                    });
                    openDb(function(is_true) {
                        if (is_true) {
                            callback(true);
                        } else {
                            callback(false);
                        }
                    });
                }
            });
        } else {
            callback(false);
        }
    });
}

3.打开数据库,如不存在则创建

var db = api.require('db');
db.openDatabase({
    name: 'db_name'
}, function(ret, err) {
    if (ret.status) {
        alert(JSON.stringify(ret));
    } else {
        alert(JSON.stringify(err));
    }
});

创建案例

function dbOpenDb(callback) {
    isExisDb(function(is_true) {
        if (is_true) {
            sqlite_db = api.require('db');
            //alert(dbname);
            sqlite_db.openDatabase({
                name : BASE_FS_SQDB_NAME,
                path : BASE_FS_SQDB_PATH + BASE_FS_SQDB_NAME + ".db"
            }, function(ret, err) {
                if (ret.status) {
                    callback(true);
                } else {
                    api.toast({
                        msg : '对不起,获取会话信息失败,为您恢复数据,请稍后'
                    });
                    openDb(function(is_true) {
                        if (is_true) {
                            callback(true);
                        } else {
                            callback(false);
                        }
                    });
                }
            });
        }
    });
}

本文转自TBHacker博客园博客,原文链接:http://www.cnblogs.com/jiqing9006/p/6808269.html,如需转载请自行联系原作者
相关文章
|
7天前
|
存储 API 数据库
QML使用Sqlite数据库存储ListModel数据
本文介绍了在QML中使用Sqlite数据库存储ListModel数据的方法,包括如何创建数据库、读取数据、动态添加和删除数据,以及如何在程序启动和退出时与数据库同步数据。
|
7天前
|
数据库 数据库管理
qt对sqlite数据库多线程的操作
本文总结了在Qt中进行SQLite数据库多线程操作时应注意的四个关键问题,包括数据库驱动加载、加锁、数据库的打开与关闭,以及QsqlQuery变量的使用。
|
2月前
|
人工智能 小程序 Java
【工具】轻松解锁SQLite数据库,一窥微信聊天记录小秘密
本文介绍了一款名为PyWxDump的开源工具,它可以获取微信账户信息、解密SQLite数据库以查看和备份聊天记录。此工具适用于已登录电脑版微信的用户,通过GitHub下载后简单几步即可操作。适合对数据恢复感兴趣的开发者,但请注意合法合规使用并尊重隐私。
206 2
【工具】轻松解锁SQLite数据库,一窥微信聊天记录小秘密
|
6天前
|
SQL 数据库连接 数据库
30天拿下Python之sqlite3模块
30天拿下Python之sqlite3模块
|
9天前
|
SQL 数据库 数据库管理
SQLite 创建数据库
SQLite 的 sqlite3 命令被用来创建新的 SQLite 数据库。您不需要任何特殊的权限即可创建一个数据。
13 0
|
10天前
|
JSON NoSQL 数据库
和SQLite数据库对应的NoSQL数据库:TinyDB的详细使用(python3经典编程案例)
该文章详细介绍了TinyDB这一轻量级NoSQL数据库的使用方法,包括如何在Python3环境中安装、创建数据库、插入数据、查询、更新以及删除记录等操作,并提供了多个编程案例。
24 0
|
2月前
|
SQL 存储 小程序
【教程】navicat配合HTTP通道远程连接SQLite数据库
本文介绍了如何通过 Navicat Premium 工具配合 n_tunnel_sqlite.php 和 HTTP 通道远程连接服务器上的 SQLite 数据库。SQLite 是一种自给自足的、无服务器的 SQL 数据库引擎,由于其端口未对外开放,直接使用 Navicat 进行远程连接不可行。文章详细记录了使用 HTTP 通道实现远程连接的过程,包括定位本地 `ntunnel_sqlite.php` 文件,将其上传至服务器,并通过 Navicat 配置 HTTP 通道连接 SQLite 数据库的具体步骤。
53 0
【教程】navicat配合HTTP通道远程连接SQLite数据库
|
2月前
|
关系型数据库 Java MySQL
C#winform中使用SQLite数据库
C#winform中使用SQLite数据库
65 3
C#winform中使用SQLite数据库
|
2月前
|
Java 数据库连接 数据库
java系列之~如何给sqlite数据库添加表
这篇文章介绍了如何在Java中使用SQLite JDBC驱动来连接SQLite数据库,并提供了示例代码来演示如何创建一个新的数据库表。
|
2月前
|
SQL 存储 数据库
SQLite数据库
【8月更文挑战第21天】SQLite数据库
36 3
下一篇
无影云桌面