Spring JdbcTemplate JdbcDaoSupport-Beispiele

Beispiele für Spring + JdbcTemplate + JdbcDaoSupport

In der Spring JDBC-Entwicklung können Sie die KlassenJdbcTemplate undJdbcDaoSupport verwenden, um die gesamten Datenbankoperationsprozesse zu vereinfachen.

In diesem Tutorial werden wir die letztenSpring + JDBC example wiederverwenden, um den Unterschied zwischen einem Vorher-Beispiel (keine JdbcTemplate-Unterstützung) und einem Nachher-Beispiel (mit JdbcTemplate-Unterstützung) zu erkennen.

1. Beispiel ohne JdbcTemplate

Ohne JdbcTemplate müssen Sie in allen DAO-Datenbankoperationsmethoden - Einfügen, Aktualisieren und Löschen - viele redundante Codes erstellen (Verbindung erstellen, Verbindung schließen, Ausnahme behandeln). Es ist einfach nicht effizient, hässlich, fehleranfällig und langweilig.

    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. Beispiel mit JdbcTemplate

Mit JdbcTemplate sparen Sie viel Tipparbeit für die redundanten Codes, da JdbcTemplate dies automatisch erledigt.

    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()
        });

    }

Siehst du das anders?

3. Beispiel Mit JdbcDaoSupport

Durch die Erweiterung von JdbcDaoSupport wird die Datenquelle festgelegt und JdbcTemplate in Ihrer Klasse wird nicht mehr benötigt. Sie müssen nur die richtige Datenquelle in JdbcCustomerDAO einfügen. Und Sie können das JdbcTemplate mithilfe einer getJdbcTemplate () -Methode abrufen.

    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
In der Frühjahrs-JDBC-Entwicklung wird immer empfohlen,JdbcTemplate undJdbcDaoSupport zu verwenden, anstatt JDBC-Code selbst zu codieren.

Quellcode herunterladen

Laden Sie es herunter -Spring-JDBC-Example.zip (15 KB)