数据库
云数据库
为了方便用户进行测试,我们提供了云端数据库供用户使用。
关于云端数据库,我们做了如下限制
- 用户建表的数量不得超过10个
- 单表数据量不得超过10万
- 仅支持 文本、整型、布尔、时间、浮点型
表添加
添加表的操作如下
- 从左侧工具栏进入云端数据库界面。
- 点击新增按钮,设置字段信息,最后保存即可。

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

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
- 数据库加密密码
- 用于数据库数据加密存储,建议设置高强度密码。
- 数据表列表
- 一个数据库中可创建多个数据表。

2. 创建数据表
点击 「+」 按钮新增数据表,右侧将显示 「新建表」 页面,用于配置数据表信息。
配置项说明:
- 表名
- 仅支持小写英文字母和下划线(
_)。 - 不允许以下划线开头或结尾。
- 示例:
user_info
- 仅支持小写英文字母和下划线(

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

4. 保存配置
完成表结构设计后,点击 「保存」 按钮,即可将当前数据库及数据表结构保存到设备本地数据库中。
5. 修改数据表
在左侧数据表列表中选择需要修改的数据表,右侧标题将变更为 「修改表」。
修改表与新建表使用相同的配置界面,可对表名、字段名称、字段类型、主键设置及字段描述等信息进行调整。完成修改后,点击 「保存」 按钮即可更新数据库表结构。

使用本地数据库
1. 添加数据库操作
从左侧 「小部件」 面板中拖动 「按钮」 到页面。
选中按钮后,进入 「动作」 配置,点击 「编辑流程图」。

在流程图中新增一个动作节点。
选中该动作节点,在右侧属性面板中将 「动作类型」 设置为 「本地数据库」。
选择需要执行的数据库操作类型。

2. 数据库操作类型
插入数据
用于向数据表中新增一条数据记录。

配置项说明:
- 表选择
- 选择需要插入数据的数据表。
- 插入的数据
- 字段名称:选择数据表中的字段。
- 字段值:
- 变量:从系统变量中选择对应值。
- 常量:直接输入固定值。
查询数据
根据筛选条件查询数据表中的数据,并返回 Map 类型数组。
如果未设置筛选条件,则返回当前数据表中的全部数据。
配置项说明:
- 查询结果绑定变量
- 选择一个 Map 列表变量 用于接收查询结果。

删除数据
根据筛选条件查询符合条件的数据,并将查询到的数据从数据表中删除。
如果未设置筛选条件,则会删除数据表中的全部数据,请谨慎操作。

更新数据
根据筛选条件查找需要更新的数据记录,并按照配置的字段值进行更新。
配置项说明:
- 表选择
- 选择需要更新的数据表。
- 筛选条件
- 用于确定需要更新的数据范围。
- 更新的数据
- 配置需要修改的字段及对应的新值。
- 字段值支持选择变量或输入常量。

3. 筛选条件
查询、删除和更新操作均支持配置筛选条件。
仅满足筛选条件的数据会参与对应操作。若未配置筛选条件,则默认对数据表中的全部数据执行操作。
举例说明
本示例将演示如何使用本地数据库实现用户信息的新增、查询、修改和删除功能。
示例项目地址:https://aiflutter.com/marketplace/details?id=2069397900881887234
用户信息包含以下字段:
- 姓名
- 身份证号
- 年龄
创建本地数据库
按照前文教程,在 「App设置」→「本地数据库」 中创建名为 sqltest 的数据库,并创建名为 user_list 的数据表。
表结构如下:
| 字段名 | 字段类型 | 是否为主键 | 字段描述 |
|---|---|---|---|
| id | String | 是 | 用户身份证号 |
| name | String | 否 | 用户姓名 |
| age | String | 否 | 用户年龄 |

用户列表展示
列表布局已绑定 userList 变量,姓名和年龄等信息通过表达式从 userList 中获取。
因此,只需更新 userList 变量即可自动刷新页面内容。


页面初始化动作
页面加载时执行以下操作:
- 查询本地数据库中的
user_list表。 - 将查询结果绑定到
userList变量。
这样页面打开时即可展示全部用户数据。


添加用户
点击用户列表页面中的 添加用户 按钮,跳转到 添加用户页面。
页面包含:
- 身份证号输入框(绑定变量:id)
- 姓名输入框(绑定变量:name)
- 年龄输入框(绑定变量:age)
- 保存按钮

添加用户按钮动作配置
变量更新
- 变量:routeRes
- 值:false

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

判断返回结果
- 当
routeRes == true时:- 查询数据库
- 将查询结果重新绑定到
userList
- 当

这样新增用户后,返回列表页面即可自动刷新数据。
添加用户页面的保存动作配置
id是主键,必须要输入,因此如果id为空则弹窗提醒必须输入身份证号


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

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

修改用户
点击列表中的编辑按钮,跳转到 修改用户页面。
页面包含:
- 身份证号输入框
- 姓名输入框
- 年龄输入框
- 保存按钮
页面打开时需要自动填充当前用户信息。
编辑按钮动作配置
- 变量更新:将touteRes的值更新为字符串false

导航:页面跳转到添加用户页面 并使用touteRes接收res的值;
- 携带参数到下一个页面,用于初始化输入框中的内容
- key:name ; 参数的数据
${userList[index]["name"]} - key:id ; 参数的数据
${userList[index]["id"]} - key:age ; 参数的数据
${userList[index]["age"]}
- key:name ; 参数的数据

- 携带参数到下一个页面,用于初始化输入框中的内容
如果touteRes为true则重新查询数据库,并将数据绑定到userList,此时页面就会随之更新


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


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


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

- 导航返回到上一个页面,并携带key值为res,数据为true字符串的数据,这样上一个页面可以根据此判断是否需要更新列表
删除用户
点击用户列表中的删除按钮。
执行以下操作:
根据当前用户的身份证号(id)作为筛选条件。
删除
user_list表中的对应数据。
删除成功后重新查询数据库。
将查询结果重新绑定到
userList。
页面将自动刷新,显示最新的数据列表。