Spring + JdbcTemplate + JdbcDaoSupportの例
Spring JDBC開発では、JdbcTemplate
クラスとJdbcDaoSupport
クラスを使用して、データベース操作プロセス全体を簡素化できます。
このチュートリアルでは、最後のSpring + JDBC exampleを再利用して、前(JdbcTemplateサポートなし)と後(JdbcTemplateサポートあり)の例の違いを確認します。
1. JdbcTemplateを使用しない例
JdbcTemplateがなければ、すべてのDAOデータベース操作メソッド(挿入、更新、削除)で多くの冗長コード(接続の作成、接続のクローズ、例外の処理)を作成する必要があります。 効率的でなく、見苦しく、エラーが発生しやすく、退屈ではありません。
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. JdbcTemplateを使用した例
JdbcTemplateを使用すると、JdbcTemplateがそれを自動的に処理するため、冗長コードの入力を大幅に節約できます。
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() }); }
別のを参照してください?
3. JdbcDaoSupportを使用した例
JdbcDaoSupportを拡張し、データソースを設定すると、クラス内のJdbcTemplateは不要になります。正しいデータソースをJdbcCustomerDAOに注入するだけです。 また、getJdbcTemplate()メソッドを使用してJdbcTemplateを取得できます。
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
Spring JDBC開発では、JDBCコードを自分でコーディングするのではなく、常にJdbcTemplate
とJdbcDaoSupport
を使用することをお勧めします。
ソースコードをダウンロード
ダウンロード–Spring-JDBC-Example.zip(15 KB)