2011-08-31 76 views

Respuesta

23

Ciertamente sí. Este ejemplo es directamente de los documentos Spring 3.0 (pero es el mismo en 2. *):

String lastName = this.jdbcTemplate.queryForObject( 
     "select last_name from t_actor where id = ?", 
     String.class, 1212L); 

Como se puede ver, es muy favores prepara declaraciones (que se debe utilizar detrás de las escenas para usted): especifica los parámetros con marcadores de posición (?) y suministra una matriz de objetos para rellenar los parámetros. (El último parámetro es el tipo del resultado esperado, pero eso no es muy relevante para esta pregunta.)

También puede utilizar un NamedParameterJdbcTemplate y el suministro de los parámetros en un Map, que es tal vez menos eficiente, pero sin duda más mnemotécnico.

+1

Genial: lo principal es que el uso de métodos parametrizados en la API de Spring se asigna definitivamente a métodos parametrizados en Java PreparedStatements subyacentes de tal forma que se preserva la protección. – Brabster

+0

Deberían hacer; El objetivo principal de Spring es implementar las mejores prácticas de una manera más conveniente, y el uso de un PreparedStatement ha sido recomendado para ... bueno, recuerdo que fue advertido en la primera versión de JDBC que encontré en Java 1.1, a pesar de ser bastante exigente. (No sé si todos los controladores JDBC lo hacen bien, pero si uno no lo hace, consideraría una razón excelente para no usarlo). –

Cuestiones relacionadas