Java 在使用getJdbcTemplate.query(sql,new Object[],rowmapper))时,如何使用union运算符设置sql查询的参数?
我的查询与此类似: sql:Java 在使用getJdbcTemplate.query(sql,new Object[],rowmapper))时,如何使用union运算符设置sql查询的参数?,java,sql,postgresql,union,jdbctemplate,Java,Sql,Postgresql,Union,Jdbctemplate,我的查询与此类似: sql: select count("A"),"B","C" from schema."xxx" where "TIME"<? and "TIME">=? AND "C"='mmn' group by "B","C" union select count("A"),"B","C" from schema."xxx" where "TIME"<? and "TIME">=? AND "C"='nno' group by "B","C" orde
select count("A"),"B","C" from schema."xxx" where "TIME"<? and "TIME">=? AND "C"='mmn' group by "B","C"
union
select count("A"),"B","C" from schema."xxx" where "TIME"<? and "TIME">=? AND "C"='nno' group by "B","C" order by "C"
我不确定这是否是传递参数的正确方法,因为当我尝试这样做时,它会出错,因为传递的参数数量不正确。您需要更换4个
?
支架
getJdbctemplate.query(sql,new Object[startTime,EndTime , startTime,EndTime ],Rowmapper)
另外,您似乎应该以endDate开始
如果您使用了
NamedParameterJdbcTemplate
,您可以使用两个占位符作为:startDate
和:endDate
您需要更换4个?
占位符
getJdbctemplate.query(sql,new Object[startTime,EndTime , startTime,EndTime ],Rowmapper)
另外,您似乎应该以endDate开始
如果您使用了
NamedParameterJdbcTemplate
,您可以使用两个占位符作为:startDate
和:endDate
,谢谢您的回复!,这是我在其他人编写的旧代码中所做的,如果我将其更改为NamedParameterJdbcTemplate,我还需要更改所有其他方法,如果我专门为这一个方法使用它,那么将有2个jdbc模板实例。如果我错了,请纠正我。我也尝试过使用getJdbctemplate。查询(sql,新对象[startTime,EndTime,startTime,EndTime],Rowmapper)仍然是相同的结果感谢响应!,这是我在其他人编写的旧代码中所做的,如果我将其更改为NamedParameterJdbcTemplate,我还需要更改所有其他方法,如果我专门为这一个方法使用它,那么将有2个jdbc模板实例。如果我错了,请纠正我。我也尝试过这样做getJdbctemplate.query(sql,新对象[startTime,EndTime,startTime,EndTime],Rowmapper)仍然是一样的结果完整的stacktraceSOF说太长了。。另外,我是新来的这个地方怎么说呢?显示完整的堆栈跟踪说它太长了。。我也是新来的这个地方怎么说呢?