3

私のSpringHibernateアプリケーションでは、すべてのSQLクエリが1つの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にこれら2つの値があります。plはこれを実現する方法のコードを送信します。プリペアドステートメントを使用したくありません。

4

3 に答える 3

5

クエリパラメータを渡すためにObjectvarargを受け取るこのオーバーロードを使用します。

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

クエリで使用されるパラメータを使用してオブジェクト配列を作成するだけでよいと思います。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 に答える