2011-12-13 22 views
6

Estoy usando NamedParameterJdbcTemplate para donde los elementos de cláusula y uno de ellos parece ser List<String>. JdbcTemplate los reemplaza?,?,? ... (tamaño de lista) pero para una cláusula IN con List<String> tiene que ser '?', '?' ....JdbcTemplate IN cláusula para elementos de cadena

¿Hay alguna forma de evitar esto?

Respuesta

8

Hay algunas otras preguntas similares por ahí que podrían tener una respuesta eficaz para usted:

How to execute IN() SQL queries with Spring's JDBCTemplate effectivly?

Para hacer este estilo de trabajo de consulta en mi final, tengo que cambiar de llanura de edad JdbcTemplate a NamedParameterJdbcTemplate .

Aquí es un código de ejemplo:

String query = "select * from table where columnName in (:listOfValues)"; 
List<String> nameRecordIDs = new ArrayList<String>(); 
// ... 
// add values to collection, then 
// ... 
Map namedParameters = Collections.singletonMap("listOfValues", nameRecordIDs); 
namedparameterJdbcTemplate.query(query, namedParameters,new MyMapper()); 
Cuestiones relacionadas