使用的JdbcTemplate以我弹簧Hibernate应用程序我有在一个common_queries.xml文件中,其中一些查询需要如下图所示2到3个参数的所有SQL查询来查询如何通过多个值在弹簧
<query id="mining.fuel" no-of-params="2">
select ms.id id,ms.name value,concat(ms.name,' ',' (',ms.code,')') label,ms.rate rate from mining_fuel ms where ms.name like '?' and ms.fuel_type_id=? LIMIT 10
</query>
在我daoImpl我得到这个查询
lookupList = jdbcTemplate.queryForList(q1.getQuery());
我将在这里得到了查询,但如何通过的“?”的价值在这儿,我有那些2倍的值与我daoImpl .. PL发送的代码如何实现这一点。我不想使用准备好的声明。
嗯,我试过我有2个值,如(q1.getQuery(), lookupValue,filterType);但是当我硬编码lookupValue和只传递一个参数filterType它的工作正常,但是当我做它反转它的引发java.sql.SQLException:没有参数定义在pr epareCall()和当我通过两个值抛出java.sql.SQLException:参数索引超出界限。 2不在1和1的有效值之间。在上面提到的'like'附近的选择查询有什么问题吗? – Anupama
尝试删除第一个'?'周围的引号:'like?'。 –
实际上我想使用(如'?%')但如果我删除单引号(如?%)其显示sql语法异常..如果我用引号其showin参数越界异常。 – Anupama