【问题标题】:How to pass parameters in jdbcTemplate for multiple parameter markers with same value?如何在 jdbcTemplate 中为具有相同值的多个参数标记传递参数?
【发布时间】:2020-10-12 16:26:21
【问题描述】:

我的查询中有 4 个相同的参数标记,其中我传递“?”获取返回的数据 getMyDateField() 函数,我是否需要传递相同的参数 4 次,如下所示?什么是正确的方法。请推荐

  final String[] args = new Date[]{
        getMyDateField(),
        getMyDateField(),
        getMyDateField(),
        getMyDateField()
};
int[] types = new int[]{Types.CHAR, Types.CHAR, Types.CHAR, Types.CHAR};
result = jdbcTemplate.query(query, args, types, new Mapper());

【问题讨论】:

    标签: java sql db2 jdbctemplate


    【解决方案1】:

    如果您需要所有 4 个参数具有相同的日期值,并且 getMyDateField() 正在做一些处理,您始终可以将 getMyDateField() 的结果存储在一个变量中,并将其 4 次传递给日期数组,从而使您的代码效率更高一点。

    如果可以修改 sql 查询,即您不需要对 4 个参数进行 4 个约束,因为它们都共享相同的日期值,那么您可以将查询更改为 where date1 = date2 and date2 = date3 and date3 = date4 and date4 = ?dateparam 并只传递该参数一次。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-01-14
      • 2015-12-29
      • 2014-08-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-04-25
      • 2015-09-24
      相关资源
      最近更新 更多