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)