如何在 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 中为具有相同值的多个参数标记传递参数?的主要内容,如果未能解决你的问题,请参考以下文章