如何在spring中使用jdbcTemplate传递多个值进行查询
在我的 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());
,我将在此处获取查询,但如何传递值'?在这里,我在 daoImpl 中有这两个值。请发送如何实现此目的的代码。我不想使用准备好的语句。
In my Spring Hibernate application i have all the sql queries in one common_queries.xml file,where some queries require 2 to 3 parameters shown as below
<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>
In my daoImpl i get this query
lookupList = jdbcTemplate.queryForList(q1.getQuery());
I will get the query here,but how to pass the value of '?'s here, i have those 2 values with me in daoImpl.. pl send the code of how to achieve this.I dont want to use prepared statement.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
使用 此重载,它采用 Object vararg 来传递查询参数:
Use this overload which takes an Object vararg for passing the query parameters:
我认为您只需要使用查询使用的参数创建一个对象数组,请记住顺序很重要,因为 value1 将是 ? 的第一个替换。在查询中。
I think that you only need to create an Object array with the params used by the query, take in mind that the order is important because value1 will be the first replacement for ? in the query.
首先在 jdbctemplate 引用上调用 queryForList 方法,并在此对象类型数组中传递查询和对象类型数组,我们必须仅传递对象,这意味着如果我们有 id,它是 int 类型,我们必须在放入对象数组时将其转换为对象类型。
LookupList = jdbcTemplate.queryForList(q1.getQuery, new Object[]{名称, new Integer(id), new Float(sal)}
First calls the queryForList method on jdbctemplate reference and pass query and object type array in this object type array we must pass only objects means if we have id it is int type we have to convert to object type while putting inside object array.
lookupList = jdbcTemplate.queryForList(q1.getQuery, new Object[]{designation, new Integer(id), new Float(sal)}