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)