Skip to content

SQLite3 数据库

云函数内置 SQLite3 数据库,您可以使用 cloud.storage.bucket(<bucket_name>) 对象中的 openSQLite3 方法打开一个 db 数据库文件;并且可以使用 exec 方法执行任意 SQL 指令,还可以使用 query 方法查询数据。

示例代码

建议创建一个 sqlite3 私有存储桶,以防数据被盗!注意:数据库文件不存在,系统会自动创建。

打开、关闭数据库(连接)

js
function main() {
    const sqlite3 = cloud.storage.bucket('sqlite3').openSQLite3('/class.db') // 打开 sqlite3 存储桶下的 class.db 数据库
    if (sqlite3 == null) {
        return '连接数据库失败'
    }
    // 连接数据库成功,可以执行 exec 或 query 操作
    sqlite3.close() // 关闭数据库连接(打开操作完成后一定记得关闭数据库连接)
    return '连接数据库成功'
}

exec 执行任意 SQL 指令

js
function main() {
    const sqlite3 = cloud.storage.bucket('sqlite3').openSQLite3('/class.db') // 打开 sqlite3 存储桶下的 class.db 数据库
    if (sqlite3 == null) {
        return '连接数据库失败'
    }
    const createTableSQL = `
        CREATE TABLE IF NOT EXISTS students (
            id INTEGER PRIMARY KEY AUTOINCREMENT,
            name VARCHAR(50) NOT NULL,
            age INTEGER,
            sex CHAR(1)
        );
	`
    if (!sqlite3.exec(createTableSQL)) {
        // 执行创建表的 SQL 指令,创建一张 students 表
        return '创建表失败'
    }
    const insertSQL = `INSERT INTO students (name, age, sex) VALUES ('王华', 21, 'M');`
    if (!sqlite3.exec(insertSQL)) {
        // 执行插入数据 SQL 指令,插入一条学生数据
        return '插入数据失败'
    }
    sqlite3.close() // 关闭数据库连接(打开操作完成后一定记得关闭数据库连接)
    return '操作成功'
}

query 执行 SQL 语句查询数据

js
function main() {
    const sqlite3 = cloud.storage.bucket('sqlite3').openSQLite3('/class.db') // 打开 sqlite3 存储桶下的 class.db 数据库
    if (sqlite3 == null) {
        return '连接数据库失败'
    }
    const result = sqlite3.query(`SELECT id, name, age, sex FROM students`)
    if (result == null) {
        return '查询数据失败'
    }
    sqlite3.close() // 关闭数据库连接(打开操作完成后一定记得关闭数据库连接)
    return '查询数据成功:' + JSON.stringify(result)
}

技术支持、市场合作:wwwanghua@outlook.com