목차

이 장에서는 데이터 퍼시스턴스를 타코 애플리케이션에 추가할 것이다. 상용구 코드를 없애기 위해 스프링의 JDBC 기능을 사용하는 것부터 3.1 장에서 시작한다. 3.2 장에서는 JPA로 데이터 리포지토리를 사용할 수 있도록 할 것이다.

3.1 JDBC를 사용해서 데이터를 읽고 쓰기

관계형 데이터를 사용할 경우 자바 개발자들이 선택할 수 있는 몇 가지 방법이 있다.

그 중 가장 많이 사용하는 두 가지 방법이 JDBC와 JPA다.

스프링 JDBC 지원은 JdbcTemplate 클래스에 기반을 둔다.

아래는 JdbcTemplate을 사용하지 않고 자바로 간단한 SQL 쿼리를 수행하는 방법이다.

스크린샷 2024-01-23 오전 9.27.31.png

스크린샷 2024-01-23 오전 9.27.42.png

위 코드의 문제점

JdbcTemplate을 사용해서 데이터베이스 쿼리하기

  @Override
	public Ingredient findById(String id) {
		return jdbc.queryForObject(
				"select id, name, type from Ingredient where id=?",
				this::mapRowToIngredient, id);
	}
	
	private Ingredient mapRowToIngredient(ResultSet rs, int rowNum)
			throws SQLException {
		return new Ingredient(
				rs.getString("id"),
				rs.getString("name"),
				Ingredient.Type.valueOf(rs.getString("type")));
	}