Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

how to pass multiple values to query using jdbcTemplate in spring

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.

like image 413
Anupama Avatar asked Sep 06 '25 03:09

Anupama


2 Answers

Use this overload which takes an Object vararg for passing the query parameters:

lookupList = jdbcTemplate.queryForList(q1.getQuery(), value1, value2, value3);
like image 105
Costi Ciudatu Avatar answered Sep 07 '25 20:09

Costi Ciudatu


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.

lookupList = jdbcTemplate.queryForList(q1.getQuery(), new Object[]{value1, value2, value3});
like image 34
German Attanasio Avatar answered Sep 07 '25 20:09

German Attanasio