Рубрики
Без рубрики

Примеры Spring + JdbcTemplate + jdbcdaподдержка

– Примеры Spring + JdbcTemplate + jdbcdaподдержка

В весенней разработке 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

Расширяя поддержку JDBCDAOS, установите источник данных, и JdbcTemplate в вашем классе больше не требуется, вам просто нужно ввести правильный источник данных в JdbcCustomerDAO. И вы можете получить JdbcTemplate с помощью метода getJdbcTemplate().

	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()  
		});
				
	}

	
	

		
		
		
		
	
	



	
		
	
	

Скачать Исходный Код

Оригинал: “https://mkyong.com/spring/spring-jdbctemplate-jdbcdaosupport-examples/”