AIGameAIGame
首页
API文档
UI文档
下载
首页
API文档
UI文档
下载
  • API文档

    • $global - 全局函数
    • $act - 手势动作
      • 01.手势动作 - $act
      • 02.节点选择器 - UiSelector
      • 03.节点 - Node
    • $ag - 图色框架
    • $app - 应用操作
    • $alert - 非阻塞对话框(AndX风格)
    • $arc - 悬浮菜单按钮
      • 01.悬浮菜单 - $arc
      • 02.悬浮容器 - MenuBody
      • 03.菜单按钮 - MenuItem
    • $bus - 消息总线
    • $color - 颜色操作
    • $crypt - 加密算法
    • $date - 日期工具
    • $device - 设备信息
    • $draw - 全局绘制
    • $dialog - 非阻塞对话框(M3风格)
    • $ext - dex,jar,so文件加载
    • $engine - 脚本引擎
      • 01.任务信息 - JsTaskInfo
      • 02.脚本对象 - $task
    • $fc - 文件选择器
    • $file - 文件操作
    • $floaty - 悬浮窗
      • 01.可调节悬浮窗 - AdjFloaty
      • 02.系统级悬浮窗 - SysFloaty
      • 03.应用级悬浮窗 - AppFloaty
    • $img - 图片操作
    • $log - 日志框架
    • $ocr - 文字识别
    • $permit - 权限工具
    • $qr - 二维码工具
    • $res - 资源管理器
    • $root - ROOT与Shell命令
    • $screen - 屏幕操作
    • $storage - 应用内存储
    • $str - 字符串工具类
    • $sys - 系统操作
    • $szk - Shizuku工具
    • $sqlite - 小数据库
    • $thread - 并发编程
    • $tip - 对话框
    • $tts - 文字阅读
    • $yolo - 目标检测
    • $yolox - 目标检测

$sqlite

  • 更新时间:2025-09-28 14:45:44

轻量数据库

线程安全,支持并发编程,本地轻量级数据库存储,存储的文件会随着应用的卸载而清空。

newSqlite()

创建新对象

创建一个新的数据库对象,你可以用这个对象来操作其他数据库

  • 返回 : {this} 自己
let sqlite = $sqlite.newSqlite();
let hasOpen = sqlite.open("myDb");
if(hasOpen){
    log("链接成功");
}

open(dbName, external)

打开数据库

如果数据库文件存在则会加载数据库,如果不存在则先创建数据库文件后加载数据库

  • 参数 : dbName {string} 数据库名称
  • 参数 : external {boolean} 是否保存到外部存储(默认:false)
  • 返回 : {boolean} 是否连接成功
//第二个参数的含义:
//false:保存到内部存储:无需后缀,只需要取一个数据库名称即可,应用卸载后数据会被删除
//true:保存到外部存储:需全路径,包括文件名和后缀,应用卸载后数据不会被删除
let hasOpen = $sqlite.open("/sdcard/mData.db",true);
if(hasOpen){
    log("链接成功");
}

open(dbName)

打开数据库

如果数据库文件存在则会加载数据库,如果不存在则先创建数据库文件后加载数据库

  • 参数 : dbName {string} 数据库名称
  • 返回 : {boolean} 是否连接成功
//无需后缀,只需要取一个数据库名称即可
let hasOpen = $sqlite.open("VideoData");
if(hasOpen){
    log("链接成功");
}

newTab(tableName, columns)

创建数据表

注意:不管你的数据是什么类型都用字符串类型存储

  • 参数 : tableName {string} 表名称
  • 参数 : columns {string[]} 列名称
  • 返回 : {boolean} 是否执行成功
let hasTable = $sqlite.newTab("table1",["name","sex","age"]);
if(hasTable){
    log("建表成功");
}

add(tableName, data)

添加数据

注意:不管你的数据是什么类型都用字符串类型存储,默认使用自增id作为主键

  • 参数 : tableName {string} 表名
  • 参数 : data {obj} 数据对象
  • 返回 : {boolean} 是否执行成功
//其实此函数等价于 $sqlite.exe("INSERT INTO table1 (name, sex, age) VALUES ('张三', '男', 20)");
let hasAdd = $sqlite.add("table1",{
    name:"张三",
    sex:"男",
    age:20
});
if(hasAdd){
    log("添加成功");
}

update(tableName, map, where)

更新数据

  • 参数 : tableName {string} 表名称
  • 参数 : map {obj} 数据对象
  • 参数 : where {string} 条件语句
  • 返回 : {boolean} 是否执行成功
//更新数据
let okUpdate = $sqlite.update("table1", {
    name: "张三",
    sex: "女",
    age: 20
},"name='张三'");
if (okUpdate) {
    log("更新成功");
}

ls(tableName)

罗列数据

注意:不管你的数据是什么类型,查询出来的必是字符串类型,即使是报错也不会返回null,而是返回空列表,因此可以不用判断数据是否为空

  • 参数 : tableName {string} 表名称
  • 返回 : {obj[]} 数据集合对象
//即使是报错也不会返回null,而是返回空列表,因此可以不用判断数据是否为空
let result = $sqlite.ls("table1");
for(let item of result){
    log(item);
}

select(selectSql)

执行查询语句

注意:不管你的数据是什么类型,查询出来统一是字符串类型。

  • 参数 : selectSql {string} 查询语句
  • 返回 : {obj[]} 数据集合对象
//即使是报错也不会返回null,而是返回空列表,因此可以不用判断数据是否为空
let result = $sqlite.select("select * from table1");
for(let item of result){
    log(item);
}

exe(sql)

执行SQL语句

  • 参数 : sql {string} sql语句
  • 返回 : {boolean} 是否执行成功
//删除表
$sqlite.exe("drop table if exists table1");

delDb(dbName)

删除数据库

我将直接删除本地数据库的存储文件,那么你将丢失所有数据

  • 参数 : dbName {string} 数据库名称
  • 返回 : {boolean} 是否执行成功
//无需打开数据库,直接就能删除数据库文件
let hasDelDb = $sqlite.delDb("VideoData");
if(hasDelDb){
    log("删库成功");
}

delTab(table)

删除表

  • 参数 : table {string} 表名
  • 返回 : {boolean} 是否删除成功
let hasDel = $sqlite.delTab("table1");
if(hasDel){
    log("删除表成功");
}

close()

关闭数据库

当你操作完毕后可以关闭数据库链接,释放资源。

  • 返回 : {boolean} 是否关闭成功
let okFinish = $sqlite.close();
if(okFinish){
    log("结束操作");
}
最近更新: 2025/9/26 19:23
Contributors: Talent
Prev
$szk - Shizuku工具
Next
$thread - 并发编程