Spring + exemples JdbcTemplate + JdbcDaoSupport

Exemples Spring + JdbcTemplate + JdbcDaoSupport

Dans le développement Spring JDBC, vous pouvez utiliser les classesJdbcTemplate etJdbcDaoSupport pour simplifier les processus généraux de fonctionnement de la base de données.

Dans ce tutoriel, nous réutiliserons les derniersSpring + JDBC example, pour voir la différence entre un exemple avant (pas de support JdbcTemplate) et après (avec support JdbcTemplate).

1. Exemple sans JdbcTemplate

Sans JdbcTemplate, vous devez créer de nombreux codes redondants (créer une connexion, fermer la connexion, gérer l'exception) dans toutes les méthodes d'opération de la base de données DAO - insérer, mettre à jour et supprimer. Il n'est tout simplement pas efficace, moche, sujet aux erreurs et fastidieux.

    private DataSource dataSource;

    public void setDataSource(DataSource dataSource) {
        this.dataSource = dataSource;
    }

    public void insert(Customer customer){

        String sql = "INSERT INTO CUSTOMER " +
                "(CUST_ID, NAME, AGE) VALUES (?, ?, ?)";
        Connection conn = null;

        try {
            conn = dataSource.getConnection();
            PreparedStatement ps = conn.prepareStatement(sql);
            ps.setInt(1, customer.getCustId());
            ps.setString(2, customer.getName());
            ps.setInt(3, customer.getAge());
            ps.executeUpdate();
            ps.close();

        } catch (SQLException e) {
            throw new RuntimeException(e);

        } finally {
            if (conn != null) {
                try {
                    conn.close();
                } catch (SQLException e) {}
            }
        }
    }

2. Exemple avec JdbcTemplate

Avec JdbcTemplate, vous économisez beaucoup de frappe sur les codes redondants, car JdbcTemplate le traitera automatiquement.

    private DataSource dataSource;
    private JdbcTemplate jdbcTemplate;

    public void setDataSource(DataSource dataSource) {
        this.dataSource = dataSource;
    }

    public void insert(Customer customer){

        String sql = "INSERT INTO CUSTOMER " +
            "(CUST_ID, NAME, AGE) VALUES (?, ?, ?)";

        jdbcTemplate = new JdbcTemplate(dataSource);

        jdbcTemplate.update(sql, new Object[] { customer.getCustId(),
            customer.getName(),customer.getAge()
        });

    }

Voir les différents?

3. Exemple avec JdbcDaoSupport

En étendant JdbcDaoSupport, définissez la source de données et JdbcTemplate dans votre classe n'est plus requis, il vous suffit d'injecter la source de données correcte dans JdbcCustomerDAO. Et vous pouvez obtenir le JdbcTemplate en utilisant une méthode getJdbcTemplate ().

    public class JdbcCustomerDAO extends JdbcDaoSupport implements CustomerDAO
    {
       //no need to set datasource here
       public void insert(Customer customer){

        String sql = "INSERT INTO CUSTOMER " +
            "(CUST_ID, NAME, AGE) VALUES (?, ?, ?)";

        getJdbcTemplate().update(sql, new Object[] { customer.getCustId(),
                customer.getName(),customer.getAge()
        });

    }


    

        
        
        
        
    



    
        
    

Note
Dans le développement JDBC Spring, il est toujours recommandé d'utiliserJdbcTemplate etJdbcDaoSupport, au lieu de coder vous-même le code JDBC.

Télécharger le code source

Téléchargez-le -Spring-JDBC-Example.zip (15 Ko)