Exemples de paramètres nommés Spring dans SimpleJdbcTemplate
Dans JdbcTemplate, les paramètres SQL sont représentés par un symbole d'espace réservé spécial «?» et le lient par position. Le problème est que chaque fois que l’ordre des paramètres est modifié, vous devez également modifier les liaisons des paramètres, c’est une source d’erreurs et une tâche fastidieuse à maintenir.
Pour résoudre ce problème, vous pouvez utiliser «Named Parameter», alors que les paramètres SQL sont définis par un début de deux points suivi d'un nom, plutôt que par une position. De plus, les paramètres nommés ne sont pris en charge que dansSimpleJdbcTemplate etNamedParameterJdbcTemplate.
Consultez les trois exemples suivants pour utiliser des paramètres nommés dans Spring.
Exemple 1
Exemple pour vous montrer comment utiliser des paramètres nommés dans une seule instruction d'insertion.
//insert with named parameter public void insertNamedParameter(Customer customer){ String sql = "INSERT INTO CUSTOMER " + "(CUST_ID, NAME, AGE) VALUES (:custId, :name, :age)"; Mapparameters = new HashMap (); parameters.put("custId", customer.getCustId()); parameters.put("name", customer.getName()); parameters.put("age", customer.getAge()); getSimpleJdbcTemplate().update(sql, parameters); }
Exemple 2
Exemples pour montrer comment utiliser des paramètres nommés dans une instruction d'opération par lots.
public void insertBatchNamedParameter(final Listcustomers){ String sql = "INSERT INTO CUSTOMER " + "(CUST_ID, NAME, AGE) VALUES (:custId, :name, :age)"; List parameters = new ArrayList (); for (Customer cust : customers) { parameters.add(new BeanPropertySqlParameterSource(cust)); } getSimpleJdbcTemplate().batchUpdate(sql, parameters.toArray(new SqlParameterSource[0])); }
Exemple 3
Un autre exemple d'utilisation des paramètres nommés dans une instruction d'opération par lots.
public void insertBatchNamedParameter2(final Listcustomers){ SqlParameterSource[] params = SqlParameterSourceUtils.createBatch(customers.toArray()); getSimpleJdbcTemplate().batchUpdate( "INSERT INTO CUSTOMER (CUST_ID, NAME, AGE) VALUES (:custId, :name, :age)", params); }
Télécharger le code source
Téléchargez-le -Spring-JDBC-Named-Parameter-Example.zip (15 Ko)