Справочник по C#

    Исходники по языку программирования CSharp

    moyadcode15

    Примеры Spring + JdbcTemplate + JdbcDaoSupport

    /
    /
    /
    64 Views
    moyadcode8
    moyadcode14

    В разработке Spring JDBC вы можете использовать JdbcTemplate а также JdbcDaoSupport классы для упрощения общих процессов работы с базой данных.

    В этом руководстве мы будем повторно использовать последний пример Spring + JDBC , чтобы увидеть разницу между примером до (без поддержки JdbcTemplate) и после (с поддержкой JdbcTemplate).

    1. Пример без JdbcTemplate

    Без JdbcTemplate вам нужно создать много избыточных кодов (создать соединение, закрыть соединение, обработать исключение) во всех методах работы с базой данных DAO – вставлять, обновлять и удалять. Это просто не эффективно, безобразно, подвержено ошибкам и утомительно.

    moyadcode14
    
    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

    Примеры Spring + JdbcTemplate + JdbcDaoSupport

    0.00 (0%) 0 votes

    moyadcode13
    • Facebook
    • Twitter
    • Google+
    • Linkedin
    • Pinterest
    moyadcode10
    moyadcode11
    moyadcode9