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

问题描述

我在传递“?”的查询中有4个相同的参数标记提取由返回的数据 getMyDateField()函数,是否需要按以下方式四次传递相同的参数?什么是正确的方法。请建议

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

解决方法

如果您需要所有4个参数都具有相同的日期值并且getMyDateField()正在进行某些处理,则始终可以将getMyDateField()的结果存储在变量中,并将其传递给date数组4次,这样您的代码效率更高。

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