3

在我的 Spring Hibernate 应用程序中,我将所有 sql 查询放在一个 common_queries.xml 文件中,其中一些查询需要 2 到 3 个参数,如下所示

   <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());

我会在这里得到查询,但是如何在这里传递'?

4

3 回答 3

5

使用此重载,它需要一个 Object vararg 来传递查询参数:

lookupList = jdbcTemplate.queryForList(q1.getQuery(), value1, value2, value3);
于 2011-08-10T11:38:43.157 回答
4

我认为您只需要使用查询使用的参数创建一个 Object 数组,请记住顺序很重要,因为 value1 将是第一个替换 ? 在查询中。

lookupList = jdbcTemplate.queryForList(q1.getQuery(), new Object[]{value1, value2, value3});
于 2013-06-01T06:04:01.777 回答
0

首先在 jdbctemplate 引用上调用 queryForList 方法,并在这个对象类型数组中传递查询和对象类型数组,我们必须只传递对象意味着如果我们有 id 它是 int 类型,我们必须在放入对象数组时转换为对象类型。

lookupList = jdbcTemplate.queryForList(q1.getQuery, new Object[]{designation, new Integer(id), new Float(sal)}

于 2013-06-01T04:43:46.603 回答