Exemples de paramètres nommés de printemps dans SimpleJdbcTemplate

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)";

        Map parameters = 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 List customers){

        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 List customers){

       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)