【问题标题】:Java: How to insert multiple values in a more elegant way for preparedStatment?Java:如何以更优雅的方式为preparedStatement插入多个值?
【发布时间】:2020-03-21 07:02:41
【问题描述】:

下面是我的 scala 代码,一个 Postgres 的插入查询,将被传递给 PreparedStatement

val query =
        s"""
           |insert into structure_products (
           |identifier, "assetClass", "name",      "scoreType",
           |"field_1",  "field_2",    "field_3",   "field_4",
           |"field_5",  "field_6",    "field_7",   "field_8",
           |"field_9",  "field_10",   "field_11",  "field_12")
           |values (
           |?, ?, ?, ?,
           |?, ?, ?, ?,
           |?, ?, ?, ?,
           |?, ?, ?, ?)
           |""".stripMargin

然后我必须手动设置 16 个字段。

val statement = connection.prepareStatement(query)

statement.setString(1, identifier)
statement.setString(2, assetClass)
statement.setString(3, name)
...
statement.setTimestamp(15, field_11)
statement.setTimestamp(16, field_12)

那么还有其他更优雅的方式吗?非常感谢!

【问题讨论】:

  • 你可以使用ORM
  • 结束最后一条评论,通常您不希望自己实现对象关系映射架构。相反,您可能希望使用 Hibernate 或 Eclipselink 等 JPA 实现。

标签: java sql postgresql scala prepared-statement


【解决方案1】:

我认为在您的情况下最好的方法之一是将您的字段和值传递给函数(作为参数)并在函数中生成最终的 INSERT 语句。

【讨论】:

    【解决方案2】:

    你可以看看Anorm,不是 ORM,而是 Play 发起的简单 Scala JDBC 映射器(我是其中的贡献者)。

    【讨论】:

      猜你喜欢
      • 2012-09-17
      • 2014-09-20
      • 2012-08-11
      • 1970-01-01
      • 1970-01-01
      • 2019-05-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多