更新记录

1.0.2(2026-02-28)

增加使用示例

1.0.1(2025-05-11)

增加示例项目

1.0.0(2025-05-11)

提交代码

查看更多

平台兼容性

uni-app(4.81)

Vue2 Vue3 Chrome Safari app-vue app-nvue Android iOS 鸿蒙
× × - - - × ×
微信小程序 支付宝小程序 抖音小程序 百度小程序 快手小程序 京东小程序 鸿蒙元服务 QQ小程序 飞书小程序 小红书小程序 快应用-华为 快应用-联盟
- - - - - - - - - - - -

uni-app x(4.81)

Chrome Safari Android iOS 鸿蒙 微信小程序
× × × × ×

hjy-sqlite

开发文档

UTS 语法 UTS API插件 UTS uni-app兼容模式组件 UTS 标准模式组件 Hello UTS

示例

import {
    openDatabase,
    executeSql,
    selectSql
} from '@/uni_modules/hjy-sqlite'
export default {
    data() {
        return {
            title: 'Hello'
        }
    },
    onLoad() {
        this.testDatabase();
        // plus.sqlite = {
        //     openDatabase,
        //     executeSql,
        //     selectSql
        // }

    },
    methods: {
        testDatabase(){
            openDatabase({
              name: 'testdb',
              success: () => {
                console.log('数据库打开成功')

                // 2. 创建表
                executeSql({
                  name: 'testdb',
                  sql: `CREATE TABLE IF NOT EXISTS products (
                    id INTEGER PRIMARY KEY AUTOINCREMENT,
                    name TEXT NOT NULL,
                    price REAL,
                    stock INTEGER
                  )`,
                  success: () => {
                    console.log('表创建成功')

                    // 3. 插入数据
                    executeSql({
                      name: 'testdb',
                      sql: "INSERT INTO products (name, price, stock) VALUES ('iPhone 15', 5999.00, 100)",
                      success: () => {
                        console.log('数据插入成功')

                        // 4. 查询数据
                        selectSql({
                          name: 'testdb',
                          sql: 'SELECT id, name, price, stock FROM products WHERE price > 5000',
                          success: (res) => {
                            console.log('查询结果:', res.rows)

                            // 遍历查询结果
                            for (let i = 0; i < res.rows.length; i++) {
                              const row = res.rows[i]
                              const id = row[0]
                              const name = row[1]
                              const price = row[2]
                              const stock = row[3]
                              console.log(`商品: ${name}, 价格: ${price}, 库存: ${stock}`)
                            }

                            // 5. 关闭数据库
                            closeDatabase({
                              name: 'testdb',
                              success: () => {
                                console.log('数据库关闭成功')
                              }
                            })
                          }
                        })
                      }
                    })
                  }
                })
              },
              fail: (err) => {
                console.error('数据库操作失败:', err.errMsg)
              }
            })
        },
        // 1. 打开数据库

    }
}

说明文档

  1. openDatabase 打开或创建数据库。
    import { openDatabase } from "@/uni_modules/hjy-sqlite"
    openDatabase({
    name: 'mydb',  // 数据库名称(必填)
    success: (res) => {
    console.log('数据库打开成功', res.name)
    },
    fail: (err) => {
    console.error('数据库打开失败', err.errMsg)
    }
    })

注意: 数据库文件会存储在 /data/data//databases/ 目录下。

  1. executeSql 执行 SQL 语句(CREATE, INSERT, UPDATE, DELETE 等)。
import { executeSql } from "@/uni_modules/hjy-sqlite"
// 创建表
executeSql({
  name: 'mydb',
  sql: 'CREATE TABLE IF NOT EXISTS users (id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT, age INTEGER)',
  success: () => {
    console.log('表创建成功')
  }
})
// 插入数据(手动拼接 SQL)
executeSql({
  name: 'mydb',
  sql: "INSERT INTO users (name, age) VALUES ('张三', 25)",
  success: (res) => {
    console.log('插入成功,影响行数:', res.rowsAffected)
  }
})
// 使用变量的插入
const userName = '李四'
const userAge = 30
executeSql({
  name: 'mydb',
  sql: `INSERT INTO users (name, age) VALUES ('${userName}', ${userAge})`,
  success: (res) => {
    console.log('插入成功')
  }
})
// 更新数据
executeSql({
  name: 'mydb',
  sql: "UPDATE users SET age = 26 WHERE name = '张三'",
  success: (res) => {
    console.log('更新成功,影响行数:', res.rowsAffected)
  }
})
// 删除数据
executeSql({
  name: 'mydb',
  sql: 'DELETE FROM users WHERE age < 20',
  success: (res) => {
    console.log('删除成功,影响行数:', res.rowsAffected)
  }
})

注意: 当前版本不支持参数绑定(args 参数),请手动拼接 SQL 字符串。请注意对字符串值进行转义以防止 SQL 注入。

  1. selectSql 查询数据(SELECT)。返回二维字符串数组。
import { selectSql } from "@/uni_modules/hjy-sqlite"
// 查询所有数据
selectSql({
  name: 'mydb',
  sql: 'SELECT id, name, age FROM users ORDER BY id DESC LIMIT 10',
  success: (res) => {
    console.log('查询到', res.rowsAffected, '条记录')
    // 遍历结果(返回二维字符串数组)
    for (let i = 0; i < res.rows.length; i++) {
      const row = res.rows[i]
      // row 是字符串数组,按查询列的顺序访问
      // 例如:SELECT id, name, age 则 row[0]=id, row[1]=name, row[2]=age
      const id = row[0]
      const name = row[1]
      const age = row[2]
      console.log('ID:', id, '姓名:', name, '年龄:', age)
    }
  }
})
// 带条件的查询(手动拼接条件)
const minAge = 20
selectSql({
  name: 'mydb',
  sql: `SELECT * FROM users WHERE age > ${minAge}`,
  success: (res) => {
    console.log('查询到', res.rowsAffected, '条记录')
    for (let i = 0; i < res.rows.length; i++) {
      const row = res.rows[i]
      console.log(row)
    }
  }
})

隐私、权限声明

1. 本插件需要申请的系统权限列表:

2. 本插件采集的数据、发送的服务器地址、以及数据用途说明:

插件不采集任何数据

3. 本插件是否包含广告,如包含需详细说明广告表达方式、展示频率: