Содержание
В разработке Spring JDBC вы можете использовать JdbcTemplate а также JdbcDaoSupport классы для упрощения общих процессов работы с базой данных.
В этом руководстве мы будем повторно использовать последний пример Spring + JDBC , чтобы увидеть разницу между примером до (без поддержки 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. И вы можете получить JdbcTemplate с помощью метода getJdbcTemplate ().
public class JdbcCustomerDAO extends JdbcDaoSupport implements CustomerDAO
{
// здесь не нужно указывать источник данных
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()
});
}
Заметка
В разработке Spring JDBC всегда рекомендуется использовать JdbcTemplate а также JdbcDaoSupport вместо того, чтобы кодировать код JDBC самостоятельно.
Скачать исходный код
Загрузить его — Spring-JDBC-Example.zip (15 КБ), интеграция jdbc spring
0.00 (0%) 0 votes








