问题描述
我在传递“?”的查询中有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
并仅传递一次该参数