查看: 1015|回复: 4

如何实现把数据写入外部数据库

升级   2.3%

6

主题

6

回帖

230

积分

注册会员

Rank: 2

积分
230
发表于 2026-2-3 09:47:44 | 显示全部楼层 |阅读模式
例如,流程走完以后,把流程数据写入mysql数据库,如何实现,有没有提供范例?
回复

使用道具 举报

升级   1.15%

7

主题

13

回帖

115

积分

注册会员

Rank: 2

积分
115
发表于 2026-2-3 15:09:46 | 显示全部楼层
得自己写脚本或者接口
回复

使用道具 举报

升级   1.83%

4

主题

7

回帖

183

积分

注册会员

Rank: 2

积分
183
发表于 2026-2-3 15:10:56 | 显示全部楼层
目前存入的数据都是json吧
回复

使用道具 举报

升级   0.77%

1

主题

3

回帖

77

积分

注册会员

Rank: 2

积分
77
发表于 2026-2-4 14:32:45 | 显示全部楼层
本帖最后由 骁垙 于 2026-2-4 16:12 编辑

可以在服务管理里面写一个接口, 在流程末尾放一个服务调用节点处理。不过我不习惯用 js 写接口, 自己写的模块提供接口服务
[JavaScript] 纯文本查看 复制代码
/********************
this.requestText   // 请求正文
this.currentPerson // 当前用户
this.response      // 响应对象,通过 this.response.setBody(data) 设置响应内容
this.org           // 组织快速访问方法
********************/

var requestJson = JSON.parse(this.requestText);

var fun = requestJson.fun;
var data = requestJson.data || {};
var result = {};

var DriverManager = Java.type("java.sql.DriverManager");
var Class = Java.type("java.lang.Class");
var Timestamp = Java.type("java.sql.Timestamp");
var Date = Java.type("java.util.Date");

/**
 * MySQL 连接信息(生产库)
 */
this.mysql = {
    url: "jdbc:mysql://192.168.2.100:3306/prod_db?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=UTC",
    user: "prod_user",
    password: "prod_pass"
};

/**
 * 写入 MySQL
 */
this.saveToMysql = function(fun, keyword, rawJson) {
    var conn = null;
    var ps = null;
    try {
        Class.forName("com.mysql.cj.jdbc.Driver");
        conn = DriverManager.getConnection(this.mysql.url, this.mysql.user, this.mysql.password);

        var sql = "INSERT INTO api_request_log(user_token, fun, keyword, request_json, create_time) VALUES (?, ?, ?, ?, ?)";
        ps = conn.prepareStatement(sql);
        ps.setString(1, this.currentPerson.token);
        ps.setString(2, fun);
        ps.setString(3, keyword);
        ps.setString(4, rawJson);
        ps.setTimestamp(5, new Timestamp(new Date().getTime()));
        ps.executeUpdate();
    } finally {
        if (ps !== null) ps.close();
        if (conn !== null) conn.close();
    }
};

/**
 * 业务方法
 */
this.save = function() {
    // 记录审计日志
    this.saveToMysql(fun, keyword, JSON.stringify(requestJson));
    result = {};
};

/**
 * 统一入口
 */
try {
    if (!this[fun]) {
        throw new Error("方法不存在: " + fun);
    }
    this[fun]();
    this.response.setBody(result, "application/json");
} catch (e) {
    this.response.setBody(JSON.stringify({
        success: false,
        error: e.toString()
    }), "application/json");
}


回复

使用道具 举报

升级   2.3%

6

主题

6

回帖

230

积分

注册会员

Rank: 2

积分
230
发表于 2026-2-6 16:07:13 | 显示全部楼层
骁垙 发表于 2026-2-4 14:32
可以在服务管理里面写一个接口, 在流程末尾放一个服务调用节点处理。不过我不习惯用 js 写接口, 自己写的 ...

问题已解决,多谢!
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

联系客服 关注微信 下载APP 返回顶部 返回列表
viewthread