构造 'jdbc:Client' 的使用已弃用。选择?

Usage of construct 'jdbc:Client' is deprecated. Alternative?

我上周开始实习,我将与 Ballerina 一起实现一些 API。出于学习目的,我创建了(基于 Ballerina 网站上的 JDBC Client CRUD Operations Example)一个带有一些示例查询的数据库客户端。

这是一些示例代码:

jdbc:Client testDB = new ({
  url: "jdbc:mysql://localhost:3306/testDB?useLegacyDatetimeCode=false&serverTimezone=Europe/Vienna",
  username: "testUser",
  password: "password"
});

function db_getAllStudents() returns json {
  var result = testDB->select("SELECT * FROM student;", Student);
  if (result is table<record {}>) {
     json jsonStudents = jsonutils:fromTable(result);
     return jsonStudents;
  }
}

当我 运行 代码时,一切正常。

但我收到一些警告,提示 jdbc:Client 和 select 函数已被弃用:

warning: dsa/service:0.1.0::DBOperations.bal:6:1: usage of construct 'jdbc:Client' is deprecated
warning: dsa/service:0.1.0::DBOperations.bal:18:18: usage of construct 'testDB.select(SELECT * FROM 
student;, Student)' is deprecated

是否有 alternative/newer 构造来创建数据库连接或进行 select 查询? 我搜索了官方文档,但我找不到任何东西。

最近在 Ballerina Slack channel 中对此进行了讨论。

WSO2 目前正在重写 JDBC 连接器。重写将在下一个主要版本(2021 年 1 月正式发布)中提供。因为当前的 JDBC 连接器将被替换,WSO2 决定弃用当前主要版本(即 1.2)中可用的 JDBC 连接器实现。

现在我们处于一种奇怪的情况,没有 Ballerina 版本带有未弃用的 JDBC 连接器。在回顾中,WSO2 认为这是一个错误,在下一个补丁版本 (1.2.5) 中,弃用状态将被删除。

因此可以安全地使用您 post 中的代码。警告将在 1.2.5 中消失(应该很快可用)。