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

Posted

技术标签:

【中文标题】如何在 jdbcTemplate 中为具有相同值的多个参数标记传递参数?【英文标题】:How to pass parameters in jdbcTemplate for multiple parameter markers with same value? 【发布时间】: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());

【问题讨论】:

【参考方案1】:

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

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

【讨论】:

以上是关于如何在 jdbcTemplate 中为具有相同值的多个参数标记传递参数?的主要内容,如果未能解决你的问题,请参考以下文章

在表中为每个数据库查找具有空值的列[关闭]

在 GET 请求中为相同参数名称传递多个值的正确方法

在 GET 请求中为相同参数名称传递多个值的正确方法

如何在构造函数中初始化具有相同值的对象数组

如何在数组中找到具有相同键值的对象?

如何声明多个具有相同值的变量