오늘
JDBC = Java Database Connectivity
자바 레벨에서 사용하는 데이터를 데이터베이스에 저장 및 업데이트 <-> 데이터베이스에 저장된 데이터를 자바 코드 레벨에서 사용할 수 있게 해주는 Java에서 제공하는 표준 사양(또는 명세, Specification)다.
그냥 단어 하나가 빠졌을 뿐인데 뭐가 다를까?
데이터 액세스 기술이 다르다.
스프링에서 사용할 수 있는 대표적인 데이터 액세스 기술들
Spring JDBC는 SQL 중심 기술이고, Spring Data JDBC는 객체 중심 기술이다.
<select id="findMember" resultType="Member">
SELECT * FROM MEMBER WHERE member_id = #{memberId}
</select>
mybatis의 SQL Mapper 예시.
Member member = this.jdbcTemplate.queryForObject
("select * from member where member_id=?", 1, Member.class);
Spring JDBC의 JdbcTemplate 사용 예시.
위 2개의 코드 모두 SQL 쿼리문이 직접적으로 들어가 있는 것을 알 수 있다.
객체(Object) 중심 기술은 데이터베이스에 접근하기 위해서 SQL 쿼리문을 직접적으로 작성하기 보다는 데이터베이스의 테이블에 데이터를 저장하거나 조회할 경우, Java 객체(Object)를 이용해 애플리케이션 내부에서 이 Java 객체(Object)를 SQL 쿼리문으로 자동 변환 한 후에 데이터베이스의 테이블에 접근하는 방식이다.
이러한 객체(Object) 중심의 데이터 액세스 기술을 ORM(Object-Relational Mapping)이라고 한다.
대표적인 JAVA ORM기술이 JPA이다.
이제