轻流 x 数据库
应用场景
通过轻流应用表单实现与数据库(Mysql、SQL server、Oracle)进行对接
ps:
公有云环境下,连接数据库需要确保所连接的数据库可以在外网环境下访问,否则无法进行连接。
私有化环境下,需要部署对应的连接器,然后根据运维提供的访问地址进行对接数据库。
落地方案

图文/视频演示
帮助文档
一、获取连接数据库基础信息
需要获取到的参数:
- url:数据库地址
- port:端口号
- dbName:数据库名称
- username:用户名
- password:密码
如何找数据库的IP地址以及端口号:
这里是本地环境的数据库,可以配置内网穿透(或者其他方式)来进行打通,使得外网可以连接数据库
点击电脑左下方的“开始”->“Microsoft SQL Server2005”->“配置工具”->“SQL Server Configuration Manager”-> “展开网络配置” -->点击“MYSQLSERVER协议” -->双击“TCP/IP” -->选择“IP地址”就能看到端口号了

这些参数为连接数据库的必须条件
以连接数据库工具(DBeaver)连接MySQL为例:
图中圈出来的内容即为上述所说

二、获取access_token
- 请求头(Header)
| 参数 | 是否必填 | 说明 |
|---|---|---|
| accessToken | 是 | 企业版客户需要试用请联系轻流技术支持申请token,试用token可以调用500次接口购买企业版客户,首次有10000次使用额度,后续使用完可联系客户成功人员进行增购。专有云/私有化客户,运维会单独提供token进行使用。 |
三、查询数据库表数据(select)
-
接口说明:用户调用数据库地址进行查询数据库表数据
-
接口地址:
-
(XXXXX为数据库类型,可填写mysql / sqlserver / oracle,请依据数据库类型选择相应地址)
-
请求方式:POST
-
请求头(Header):accessToken
-
请求体(body):
| 参数 | 必须 | 类型 | 说明 |
|---|---|---|---|
| url | 是 | string | 数据库地址 |
| port | 是 | string | 端口号 |
| dbName | 是 | string | 数据库名称 |
| username | 是 | string | 用户名 |
| password | 是 | string | 密码 |
| sqlType | 是 | string | sql类型 只支持:select/update/insert |
| sql | 是 | string | sql语句 |
- 请求示例:
curl --location 'https://connect.oalite.com/api/database/sqlserver' \
--header 'accessToken: 4b9ee78556c948728207***' \
--header 'Content-Type: application/json' \
--data '{
"dbtype":"sqlserver",
"url": "114.116.***.**",
"port": "***",
"dbName": "***",
"username": "**",
"password": "*****",
"sqlType": "select",
"sql": "select * from ***"
}'
- 响应示例
{
"code":0,
"data":[
{
"join_date":"2021-18-02",
"sex":"男",
"name":"小赵",
"start_end_date":"2021-01-07~2021-01-09",
"id":"1001",
"dept":"测试部门",
"salary":"7000",
"age":"18"
},
{
"join_date":"2021-19-03",
"sex":"女",
"name":"小钱",
"start_end_date":"2021-01-01~2021-01-30",
"id":"1002",
"dept":"测试部门",
"salary":"6000",
"age":"18"
}
],
"msg":null
}
注意:对于查询数据库表数据,如果想要将数据获取到表格中,就使用q-linker获取。如果想要将数据存放在应用中,就使用Q source主动进行获取。具体场景看具体使用。这里是以QS主动为例
1、postman测试
- 具体先在postman测试成功之后,再将具体配置移至到轻流中

2、QS主动配置获取数据库表数据
- 表单设计具体接收返回的参数内容,这里简单举例获取数据表数据中的store_name、store_code

- 轻流QS主动配置信息
- QS主动说明:https://help.qingflow.com/help-docs?type=qingCode&docId=392ae32f64245c50001bc7f07deaee9e&parentId=






3、实际效果
- 这里我点击手动运行,看下具体效果,其中申请人会默认以管理员身份

四、插入数据到数据库(insert)
-
接口说明:用户调用数据库接口进行数据插入
-
接口地址:
-
(XXXXX为数据库类型,可填写mysql / sqlserver / oracle,请依据数据库类型选择相应地址)
-
请求方式:POST
-
请求头(Header):accessToken
-
请求体(body):
| 参数 | 必须 | 类型 | 说明 |
|---|---|---|---|
| url | 是 | string | 数据库地址 |
| port | 是 | string | 端口号 |
| dbName | 是 | string | 数据库名称 |
| username | 是 | string | 用户名 |
| password | 是 | string | 密码 |
| sqlType | 是 | string | sql类型 只支持:select/update/insert |
| sql | 是 | string | sql语句 |
- 对于推送数据,主要使用的是轻流的webhook功能,所以这里就以上述做个简单配置
1、webhook配置数据库插入数据
- 表单设计,这里只做简单配置演示,具体推送字段需要根据具体需求做判断
例如:往test数据库中的表test110中插入数据



- SQL语句需要根据数据库表的字段来进行填写
下图为例:数据类型为数字类型的话,轻流插入字段就不需要加单引号,反之其他字段需要加引号
然后具体SQL语句的写法可以参考该文档:
https://www.w3school.com.cn/sql/sql_insert.asp


2、实际效果
- 完成配置后,点击保存发布后,后续发起表单数据,就会触发webhook,进行数据库表数据的插入操作



PS:如果遇到问题根据下述文档进行排查
https://exiao.yuque.com/rlf3k1/oanb79/apa9nf48a9gzql4r?singleDoc# 《如何排查接口问题》
大概率失败的原因是由于SQL语句中引号加与不加的问题。具体可以在postman测试成功之后再进行轻流的配置。
如果postman测试连接数据库报错如下:
- 就是当前版本数据库TLS协议太低,需要上网下载对应版本的补丁或者更新数据库到最新版本,使得数据库TLS协议满足1.2即可

- 该报错大概率是body中参数填写有问题,导致与数据库服务器之间的通信失败。
