AiFlutter 文档AiFlutter 文档
视频教程
入门指南
更新日志
官网
市场
社区
低代码平台
GitHub
视频教程
入门指南
更新日志
官网
市场
社区
低代码平台
GitHub
  • 入门指南

    • AiFlutter 简介
      • 产品介绍
    • 快速开始
    • 工作空间概览

      • 工作台
      • 进入工作台
      • 工作台结构
      • 账户设置
      • 订单中心
      • 项目
      • 团队
      • 资源
    • 操作界面说明

      • 操作界面简介
      • 素材管理
      • 日志管理
      • 主题设置
      • App设置
      • 小部件面板
      • 自定义组件
      • 页面管理
      • 页面编辑窗口
      • 流程图
    • 组件介绍

      • 页面布局
      • 内容展示
      • 动画图表
      • 交互行为
      • 表单元素
      • 页面导航
      • 系统工具
    • 集成硬件
    • API管理
    • 自定义管理
    • 数据库
    • 云端数据库私有化部署
    • App 多平台上架操作流程
    • 应用宝(腾讯开放平台)开发者账号申请
    • 应用宝 AiFlutter
    • 应用宝 手动上架
    • Apple Developer 账号申请
    • Apple Store Connect 自动上架
    • Apple Store Connect 手动上架
    • Google Play 谷歌开发者账号申请
    • Google Play 自动上架
    • Google Play 手动上架
    • 邓白氏编码(D-U-N-S Number)申请全流程
    • APP 备案全流程
    • 百度网盘获取Token教程
    • 阿里云盘获取Token教程
    • Cron 表达式使用教程
    • 实践案例

      • 老板要求两天开发一个App,半天搞定!!!

数据库

云数据库

为了方便用户进行测试,我们提供了云端数据库供用户使用。

关于云端数据库,我们做了如下限制

  • 用户建表的数量不得超过10个
  • 单表数据量不得超过10万
  • 仅支持 文本、整型、布尔、时间、浮点型

表添加

添加表的操作如下

  1. 从左侧工具栏进入云端数据库界面。
  2. 点击新增按钮,设置字段信息,最后保存即可。

表预览

添加表成功后,还可以对表数据进行查看、删除、添加、修改,方便用户更直观的操作表。

API调用

为了满足用户可以将数据写入到云端数据库,我们开放了操作云端数据库的API,方便用户对接。

用户创建项目后,默认会添加4个API调用定义,它们是与云端数据库联动的关键。

分页查询

请求体

{
    "current": "1",                  // 当前页
    "pageSize": "20",                // 每页大小
    "sortField": "create_time",      // 排序字段
    "sortOrder": "DESC",             // 排序方式
    "matchingPattern": "and",        // 条件拼接符,仅支持 and 或 or
    "tableName": "xxx",              // 操作表名
    "fieldList": [                   // 条件查询字段列表
        {
            "fieldName": "xxx",      // 字段名称
            "comparator": "=",       // 比较符
            "fieldValue": 0          // 字段值
        }
    ]
}

例如,当我查询上面 aaa表的数据

更新数据

仅支持单条更新,通过主键更新。

请求体

{
    "primaryKeyName": "id",        // 主键名称
    "primaryKeyValue": 20,         // 主键值
    "tableName": "xxx",            // 操作表名
    "fieldList": [                 // 更新的字段列表
        {
            "fieldName": "xxx",    // 更新字段名
            "fieldValue": 0        // 更新字段值
        }
    ]
}

例如,当我更新上面 aaa表一条数据的sex值

添加数据

仅支持单条添加,不支持主键递增,主键值需要用户输入。

请求体

{
    "tableName": "xxx",           // 操作表名
    "fieldList": [                // 插入数据的字段列表
        {
            "fieldName": "xxx",   // 字段名称
            "fieldValue": 0       // 字段值
        }
    ]
}

例如,当我插入上面 aaa表的一条数据

删除数据

仅支持单条删除,通过主键删除。

请求体

{
    "primaryKeyName": "id", // 主键名称
    "primaryKeyValue": 20,  // 主键值
    "tableName": "xxx"      // 操作表名
}

例如,当我删除上面 aaa表的一条数据

本地数据库

在部分网络条件受限的场景下(如山区、农业生产区域等),设备可能无法稳定连接互联网。为了保障数据的正常采集与存储,平台提供了本地数据库功能,可将数据直接存储在移动设备中,实现离线运行。

本地数据库不支持预览,必须要在真机上进行测试

配置本地数据库

1.创建数据库

进入左侧菜单 「App 设置」→「本地数据库」,开启 「启用本地数据库」 开关后开始配置。

配置项说明:

  • 数据库名称
    • 仅支持小写英文字母。
    • 示例:farmdata
  • 数据库加密密码
    • 用于数据库数据加密存储,建议设置高强度密码。
  • 数据表列表
    • 一个数据库中可创建多个数据表。

image-20260623161728608

2. 创建数据表

点击 「+」 按钮新增数据表,右侧将显示 「新建表」 页面,用于配置数据表信息。

配置项说明:

  • 表名
    • 仅支持小写英文字母和下划线(_)。
    • 不允许以下划线开头或结尾。
    • 示例:user_info

image-20260623162014397

3. 配置字段

点击 「添加字段」 按钮,为数据表新增字段。

字段配置说明:

  • 字段名
    • 仅支持小写英文字母和下划线(_)。
    • 不允许以下划线开头或结尾。
    • 示例:user_id
  • 字段类型
    • String:字符串类型
    • Int:整数类型
    • Double:小数类型
  • 是否为主键
    • 主键用于唯一标识一条数据记录。
    • 同一张表中主键值不可重复。
  • 字段描述
    • 用于记录字段用途说明,便于后续维护和使用。

image-20260623162505293

4. 保存配置

完成表结构设计后,点击 「保存」 按钮,即可将当前数据库及数据表结构保存到设备本地数据库中。

5. 修改数据表

在左侧数据表列表中选择需要修改的数据表,右侧标题将变更为 「修改表」。

修改表与新建表使用相同的配置界面,可对表名、字段名称、字段类型、主键设置及字段描述等信息进行调整。完成修改后,点击 「保存」 按钮即可更新数据库表结构。

image-20260623163653517

使用本地数据库

1. 添加数据库操作

  1. 从左侧 「小部件」 面板中拖动 「按钮」 到页面。

  2. 选中按钮后,进入 「动作」 配置,点击 「编辑流程图」。

    image-20260623170601976

  3. 在流程图中新增一个动作节点。

  4. 选中该动作节点,在右侧属性面板中将 「动作类型」 设置为 「本地数据库」。

  5. 选择需要执行的数据库操作类型。

image-20260623170640297

2. 数据库操作类型

插入数据

用于向数据表中新增一条数据记录。

image-20260623170716474

配置项说明:

  • 表选择
    • 选择需要插入数据的数据表。
  • 插入的数据
    • 字段名称:选择数据表中的字段。
    • 字段值:
      • 变量:从系统变量中选择对应值。
      • 常量:直接输入固定值。
查询数据

根据筛选条件查询数据表中的数据,并返回 Map 类型数组。

如果未设置筛选条件,则返回当前数据表中的全部数据。

配置项说明:

  • 查询结果绑定变量
    • 选择一个 Map 列表变量 用于接收查询结果。

image-20260623170829730

删除数据

根据筛选条件查询符合条件的数据,并将查询到的数据从数据表中删除。

如果未设置筛选条件,则会删除数据表中的全部数据,请谨慎操作。

image-20260623170925803

更新数据

根据筛选条件查找需要更新的数据记录,并按照配置的字段值进行更新。

配置项说明:

  • 表选择
    • 选择需要更新的数据表。
  • 筛选条件
    • 用于确定需要更新的数据范围。
  • 更新的数据
    • 配置需要修改的字段及对应的新值。
    • 字段值支持选择变量或输入常量。

image-20260623170955519

3. 筛选条件

查询、删除和更新操作均支持配置筛选条件。

仅满足筛选条件的数据会参与对应操作。若未配置筛选条件,则默认对数据表中的全部数据执行操作。

举例说明

本示例将演示如何使用本地数据库实现用户信息的新增、查询、修改和删除功能。

示例项目地址:https://aiflutter.com/marketplace/details?id=2069397900881887234

用户信息包含以下字段:

  • 姓名
  • 身份证号
  • 年龄

创建本地数据库

按照前文教程,在 「App设置」→「本地数据库」 中创建名为 sqltest 的数据库,并创建名为 user_list 的数据表。

表结构如下:

字段名字段类型是否为主键字段描述
idString是用户身份证号
nameString否用户姓名
ageString否用户年龄

image-20260623195740998

用户列表展示

列表布局已绑定 userList 变量,姓名和年龄等信息通过表达式从 userList 中获取。

因此,只需更新 userList 变量即可自动刷新页面内容。

image-20260623195821552

image-20260623195908583

页面初始化动作

页面加载时执行以下操作:

  1. 查询本地数据库中的 user_list 表。
  2. 将查询结果绑定到 userList 变量。

这样页面打开时即可展示全部用户数据。

image-20260623200004109

image-20260623200101180

添加用户

点击用户列表页面中的 添加用户 按钮,跳转到 添加用户页面。

页面包含:

  • 身份证号输入框(绑定变量:id)
  • 姓名输入框(绑定变量:name)
  • 年龄输入框(绑定变量:age)
  • 保存按钮

image-20260623200152917

添加用户按钮动作配置
  • 变量更新

    • 变量:routeRes
    • 值:false

    image-20260623201636392

  • 页面跳转

    • 跳转到:添加用户页面
    • 返回值接收变量:routeRes

    image-20260623201718855

  • 判断返回结果

    • 当 routeRes == true 时:
      • 查询数据库
      • 将查询结果重新绑定到 userList

image-20260623202043620

这样新增用户后,返回列表页面即可自动刷新数据。

添加用户页面的保存动作配置
  • id是主键,必须要输入,因此如果id为空则弹窗提醒必须输入身份证号

    image-20260623200256933

    image-20260623200327053

  • 不为空将数据插入到本地数据库中

    image-20260623200418634

  • 导航返回到上一个页面,并携带key值为res,数据为true字符串的数据,这样上一个页面可以根据此判断是否需要更新列表

    image-20260623200447236

修改用户

点击列表中的编辑按钮,跳转到 修改用户页面。

页面包含:

  • 身份证号输入框
  • 姓名输入框
  • 年龄输入框
  • 保存按钮

页面打开时需要自动填充当前用户信息。

编辑按钮动作配置
  • 变量更新:将touteRes的值更新为字符串false

image-20260623201303665

  • 导航:页面跳转到添加用户页面 并使用touteRes接收res的值;

    • 携带参数到下一个页面,用于初始化输入框中的内容
      • key:name ; 参数的数据 ${userList[index]["name"]}
      • key:id ; 参数的数据 ${userList[index]["id"]}
      • key:age ; 参数的数据 ${userList[index]["age"]}

    image-20260623201350100

  • 如果touteRes为true则重新查询数据库,并将数据绑定到userList,此时页面就会随之更新

image-20260623201423748

image-20260623201444827

修改用户页面初始化动作配置
  • 动作类型选择导航,并且配置接收路由参数配置
    • 键名:name,接收数据的变量:name
    • 键名:age,接收数据的变量:age
    • 键名:id,接收数据的变量:id
    • 键名:oldId,接收数据的变量:id
      • oldId 用于记录修改前的身份证号。当用户修改身份证号时,可以通过 oldId 定位原始数据。

image-20260623200605774

image-20260623200649766

修改用户页面的保存动作配置
  • id是主键,必须要输入,因此如果id为空则弹窗提醒必须输入身份证号

image-20260623200722663

image-20260623200748110

  • 不为空将更新本地数据库的值

image-20260623200941694

  • 导航返回到上一个页面,并携带key值为res,数据为true字符串的数据,这样上一个页面可以根据此判断是否需要更新列表

删除用户

点击用户列表中的删除按钮。

执行以下操作:

  1. 根据当前用户的身份证号(id)作为筛选条件。

  2. 删除 user_list 表中的对应数据。

    image-20260623201023846

  3. 删除成功后重新查询数据库。

  4. 将查询结果重新绑定到 userList。

    image-20260623201043901

页面将自动刷新,显示最新的数据列表。

上次更新:
上一篇
自定义管理
下一篇
云端数据库私有化部署