【发布时间】:2019-04-19 04:31:02
【问题描述】:
我将以下 10 行 Python 代码移植到 Scala:
import psycopg2
def execute(user, password, database, host, port, *queries):
connection = psycopg2.connect(user=user, password=password, host=host, port=port, database=database)
cursor = connection.cursor()
for sql in queries:
print(sql)
cursor.execute(sql)
connection.commit()
cursor.close()
connection.close()
我有以下等效的 Scala 代码:
def execute(user: String, password: String, database: String, host: String, port: Int, queries: String*): Unit = {
???
}
我想在一个单个事务中针对数据库(假设它是 Postgres)执行(并打印)一堆 SQL 语句并完成。
我如何使用doobie 做到这一点?
注意:
我无法将接口更改为我的
execute()(包括我无法添加类型或隐式参数)。它必须接受字符串用户、密码等和queries: String*的可变参数,从而保持界面与 Python 界面相同。还请提及所有需要的导入
【问题讨论】:
-
这些查询是更新、选择还是插入?
-
大多数情况下,创建表、创建视图、刷新、复制语句以加载数据、重命名等
-
我检查了 doobie - 但我没有找到可能 - 所以你只对 doobie 的解决方案感兴趣 - 还是对一般的 scala 感兴趣?
-
doobie 很遗憾,因为这是我们在代码库中随处使用的库。我很惊讶它不可能在 Scala 中最流行的 ORM 库之一中执行
Seq[String]! -
它是 ORM 库吗?