JAP를 사용하는 이유를 알아보기 위해 일단 JAP가 생긴 배경과 기존 기술들과의 차이점을 먼저 알아보겠습니다.
Spring Framework로 개발할 때 Data Access Layer에서 사용하는 기술은 크게 3가지입니다.
1. JDBC
2. SQL Mapper (ex:MyBatis)
3. ORM (ex:JPA)
위의 기술들은 영속성을 구현하기 위해 나왔습니다.
이처럼 객체의 상태를 DB에 저장하면서 객체에게 영속성을 부여하고있다.
public Optional<Member> findByName(String name) {
String sql = "select * from member where name = ?";
Connection conn = null;
PreparedStatement pstmt = null;
ResultSet rs = null;
try {
conn = getConnection();
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, name);
rs = pstmt.executeQuery();
if (rs.next()) {
Member member = new Member();
member.setId(rs.getLong("id"));
member.setName(rs.getString("name"));
return Optional.of(member);
}
return Optional.empty();
} catch (Exception e) {
throw new IllegalStateException(e);
} finally {
close(conn, pstmt, rs);
}
}