如何在 jdbcTemplate 中为具有相同值的多个参数标记传递参数?

How to pass parameters in jdbcTemplate for multiple parameter markers with same value?

我在传递“?”的查询中有 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());

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

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